2016-11-22 66 views
0

私はCryptos AES暗号化を使用するだけですが、Cryptjsドキュメントで見つけることができないパディングPkcs5を使用する必要があります。 AESを使用する場合 それはPKCS5Pkcs5パッディングをCryptojsでAES暗号化に使用

encryptByAES: function (secretPwd) { 
    var keyHex = CryptoJS.enc.Utf8.parse(this.encryption_key); 
    var encrypted = CryptoJS.AES.encrypt(secretPwd, keyHex, { 
     mode: CryptoJS.mode.ECB, 
     padding: CryptoJS.pad.Pkcs7 
    }); 
    console.log('encryptByAES key: ',encrypted.toString()); 
    return encrypted.toString(); 
} 

答えて

4

で動作するように、この機能を変換する方法、PKCS7とサイファーモードECBとうまく働いPKCS#5 & PKCS#7 betwheen違いはありません。

PKCS#5とPKCS#7のパディングの違いは、サポートするブロックサイズです。 PKCS#5は8バイトブロックのみで動作し、PKCS#7は1バイトと255バイトの間のブロックサイズで動作します。 AESは8バイトのブロックサイズを使用します。

+0

違いがあります! PKCS#5のパッドは最大64ビット= 8 * 8バイト(https://tools.ietf.org/html/rfc2898)です。 PKCS#7パッドは最大2040ビット= 255 * 8バイト(https://tools.ietf.org/html/rfc2315)。 AESでPKCS#5を使用しないでください。それはむしろDESのために作成されました。 – schirrmacher