我必須解密一些AES加密的字符串。Crypto.js用字節數組中的密鑰和iv(向量)解密
實施例加密的字符串:129212143036071008133136215105140171136216244116
我有一個鍵,以及(iv)提供給我一個字節數組格式的向量:
鍵:[123,217 ,20,11,24,26,85,45,114,184,27,162,37,115,222,209,241,24,175,144,175,53,196,29,24,23,17 ,218,131,226,53,209]
向量(iv):[146,66,191,151,23,3 ,113,119,231,131,133,112,79,32,114,136]
我應該能夠解密串和獲得:
正確的輸出:TESTTEST
我想使用Crypto.js,但我找不到使用提供的密鑰和向量的方法。我找不到將字節數組轉換爲十六進制的方法。
var encrypted = '129212143036071008133136215105140171136216244116';
var key = CryptoJS.enc.Hex.parse([ 123, 217, 20, 11, 24, 26, 85, 45, 114, 184, 27, 162, 37, 115, 222, 209, 241, 24, 175, 144, 175, 53, 196, 29, 24, 23, 17, 218, 131, 226, 53, 209 ]);
var iv = CryptoJS.enc.Hex.parse([ 146, 66, 191, 151, 23, 3, 113, 119, 231, 131, 133, 112, 79, 32, 114, 136 ]);
var decrypted = CryptoJS.AES.decrypt(encrypted, key, { iv: iv });
console.log('Output: '+decrypted.toString(CryptoJS.enc.Utf8)); //Should be "testtest"
我會很感激,如果有人能告訴我如何使用解密密鑰和矢量與Crypto.js或任何其他js的方法的例子字符串。
感謝這麼多的幫助, 親切的問候
請參閱http://stackoverflow.com/a/311179/152640或http://stackoverflow.com/a/9855338/152640從字節數組到十六進制相關如此問題 –
真的有什麼問題你的密文。所有的字符都是0到9,所以它可能不是十六進制編碼的,因爲AES密文真的很嘈雜,A到F範圍內確實應該有一些字符。另外,如果假設CBC模式和十六進制編碼,密文長度是無效的。 –