2012-11-12 132 views
0

這是我面臨的問題。在服務器A(即IBM i740主框架)上運行的機制可以獲取安全數據並使用AES對其進行加密。現在,我想要獲得ENCRYPTED數據(AES加密字符串),但由於它使用亂碼字符,因此無法通過http傳輸。所以爲了讓我得到它,有一個Web服務公開了,它發現AES加密的字符串HEX'es並返回一個HEX字符串,比如F51A751CC72124EE95518BECBA1F47C4。我的問題是,是否有任何方法可以將(最好用Java)將HEX值轉換回AES加密字符串(我不想解密字符串,只是將其恢復爲原始加密值)? 感謝將HEX字符串轉換回AES

回答

2

所以總結一下,你所面對的問題是,你想要通過HTTP傳輸二進制數據。 (這與加密無關;這使問題複雜化。)有趣的是,我們始終通過HTTP傳輸二進制數據! (圖片等)

您需要說明您正在計劃傳輸數據的方式是什麼。你是否將它包含在HTTP POST中?如果是這樣,那麼你需要編碼的數據。 Base64在這裏會很理想。

否則,你也許可以在二進制傳輸,它只是一個解釋你如何需要傳輸它的事,所以正確的事情(例如,MIME類型?)可以設置這樣的數據沒有被損壞傳輸。

+0

我想你誤解了我的問題。我可以從i740獲得HEX字符串(通過網絡服務調用)。我的問題是有沒有辦法將HEX字符串轉換回AES加密字符串?我不認爲我可以從i740獲得AES加密字符串,因爲它使用EBCDIC作爲編碼。 –

+0

EBCDID無關緊要。你從Web服務調用中獲得像「F51A75 ...」這樣的十六進制文本嗎?而你的網絡客戶端軟件是Java,對吧?如果是這樣,你的方式會讓你的問題過於複雜。相反,只需詢問如何在Java中將十六進制字符串轉換爲字節數組。如果你問,你會發現[這個答案](http://stackoverflow.com/questions/140131/convert-a-string-representation-of-a-hex-dump-to-a-byte-array-使用-java的)。 –

+0

謝謝你的回答。好吧,我儘量避免使問題複雜化,所以我沒有把我需要將HEX值解碼爲EBCDIC的原因。我必須具有這個價值,因爲我的Java應用程序必須將該值寫入DB2 table =) –