原來祕密密鑰這是一個用於AES加密充分利用十六進制格式
00010203050607080A0B0C0D0F101112
我可以生成從這個原始SecretKey的格式或字節數組中密鑰的十六進制格式?
如果是這樣怎麼樣?
原來祕密密鑰這是一個用於AES加密充分利用十六進制格式
00010203050607080A0B0C0D0F101112
我可以生成從這個原始SecretKey的格式或字節數組中密鑰的十六進制格式?
如果是這樣怎麼樣?
您可以使用Apache共享編解碼器進行解碼十六進制,
http://commons.apache.org/codec/apidocs/org/apache/commons/codec/binary/Hex.html#decodeHex(char[])
如果你不想使用任何庫,你也可以做到這一點,
byte[] bytes = new BigInteger("7F" + str, 16).toByteArray();
SecretKeySpec key = new SecretKeySpec(bytes, 1, bytes.length-1, "AES");
你有添加一個額外的字節0x7F,以防止BigInteger剝離前導零或添加簽名字節。
A SecretKey
是一個接口。什麼類型的實施? J2SE有兩個實現類,KerberosKey
和SecretKeySpec
,它們都具有以字節數組作爲參數的構造函數。
我使用的SecretKeySpec – rover12 2009-11-26 19:49:32
什麼是原始的SecretKey格式?
您知道嗎byte[]
包含從-128到127的有符號字節值? 難道傷害,如果你嘗試過這樣的:
byte[] key = {
0x00,0x01,0x02,0x03,0x05,0x06,0x07,0x08,
0x0A,0x0B,0x0C,0x0D,0x0F,0x10,0x11,0x12
};
注意:如果你有一個像0x80的價值觀 - 0xFF的你需要投他們作爲(字節)0x80的 - (字節)爲0xFF,以避免有關範圍的警告。
我希望你張貼一個修改後的十六進制值或你保護的數據並不重要... – 2009-11-26 18:55:46
是的,我只是發佈測試數據十六進制密鑰 – rover12 2009-11-26 18:56:42