以下CryptoJs代码在IE9中以正常速度运行但在IE7中运行速度非常慢,是什么原因以及加速IE7脚本的任何方法?
var keyLength = 256;
var iteration = 1000;
var salt = CryptoJS.lib.WordArray.random(128/8);
var key = CryptoJS.PBKDF2(passphrase, salt, { keySize: keyLength/32, iterations: iteration });
var iv = CryptoJS.lib.WordArray.random(128/8);
var loginPassword = document.getElementsByName("password")[0].value;
var encrypted = CryptoJS.AES.encrypt(loginPassword, key, {iv:iv},{mode:CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7});
答案 0 :(得分:1)
微软已经提高了IE9中JavaScript引擎的速度,使其与其他现代JS引擎相提并论(参见here)。我担心没有什么可以改善IE7引擎的性能。当然,在这种特定的情况下,你可以减少迭代次数,虽然我对PBKDF2不够熟悉,无法说明在函数变得不安全之前可以减少多少。另一个需要考虑的选择是将密码哈希移动到服务器......