當使用crypto js tripleDES加密時,我注意到所有要加密的字符串都是小長度的,例如「01」,「111」,「20」 5000021234567890000「,輸出不正確或不是我期望的值。 例如,對於這個「5000021234567890000」,我期待這樣的:「HctDaKc/U9avOwZMSS5mEi62kfojDHA4」,但我得到這個代替:HctDaKc/U9bNnFy6eZHqHj3SemorJxQM。Crypto JS:TripleDES不能正確加密
這是我發現的代碼,並使用加密
let key = CryptoJS.MD5(enckey);
key.words[4] = key.words[0];
key.words[5] = key.words[1];
let iv = CryptoJS.lib.WordArray.create(64/8);
CryptoJS.TripleDES.encrypt("5000021234567890000", key, {iv: iv});
你的幫助會非常讚賞。
不要使用3DES新的工作,它不再被認爲是安全的,而不是使用AES(高級加密標準) 。 – zaph
謝謝,但它不是我的力量來改變加密方法,我只是簡單地遵循要求 –
最好的猜測給一點代碼:一個實例使用CBC模式,另一個使用ECB模式,我經常看到IVs錯誤地提供了ECB模式。明確提供加密模式總是更好。此外,您似乎使用的是在大多數情況下已棄用的雙鍵3DES。 – zaph