Javascript Crypto JS AES文件加密和解密速度非常慢
我正在编写一个脚本,使用crypto js库和windows脚本主机对文件进行加密和解密。但是,当我尝试加密一个大小为1.5mb的图像文件时,加密需要30秒以上的时间。解密需要更长的时间,以至于我无法在不终止进程的情况下等待它 是否有方法可以提高代码的效率,或者根本上是用错误的方式加密文件 为任何建议干杯。:)Javascript Crypto JS AES文件加密和解密速度非常慢,javascript,encryption,cryptography,cryptojs,wsh,Javascript,Encryption,Cryptography,Cryptojs,Wsh,我正在编写一个脚本,使用crypto js库和windows脚本主机对文件进行加密和解密。但是,当我尝试加密一个大小为1.5mb的图像文件时,加密需要30秒以上的时间。解密需要更长的时间,以至于我无法在不终止进程的情况下等待它 是否有方法可以提高代码的效率,或者根本上是用错误的方式加密文件 为任何建议干杯。:) WScript?你肯定不能在WSH上使用比JavaScript更合适的东西来实现这一点?Node.js有内置的AES,速度会快得多,例如,或者你可以使用.NET、Python或C…这是这
WScript?你肯定不能在WSH上使用比JavaScript更合适的东西来实现这一点?Node.js有内置的AES,速度会快得多,例如,或者你可以使用.NET、Python或C…这是这些平台的概念证明:)好吧,你正在成功地证明WSH不是这个概念的正确平台…谢谢我猜…答案仍然是“使用其他任何东西”。如果有必要的话,可以从WSH向它施舍,但您需要一些外部工具,因为JScript永远不会足够快。您能够安装节点吗?甚至只是OpenSSL工具集?
function encryptFile (file, encryptionKey) {
try {
var fileReader = WScript.CreateObject("ADODB.Stream");
fileReader.CharSet = '437';
fileReader.Open();
fileReader.LoadFromFile(file);
WScript.Echo("beginning crypt"); // debugging
var encrypted = CryptoJS.AES.encrypt(fileReader.ReadText(), encryptionKey);
WScript.Echo("finished crypt"); // debugging
fileReader.Close();
return encrypted;
} catch (e) {
return 0;
}
}
function decryptFile (file) {
try {
var fileReader = WScript.CreateObject("ADODB.Stream");
fileReader.CharSet = '437';
fileReader.Open();
fileReader.LoadFromFile(file);
var decrypted = CryptoJS.AES.decrypt(fileReader.ReadText(), KEY);
fileReader.Close();
var plaintext = decrypted.toString(CryptoJS.enc.Utf8);
return plaintext;
} catch (e) {
return 0;
}
}