我正在编写一个脚本来使用crypto-js库和windows脚本宿主加密和解密文件。但是,当我尝试加密大小为1.5mb的图像文件时,加密需要30秒。解密需要更长的时间,以至于我无法在不杀死进程的情况下等待它。
我是否有办法提高代码的效率,或者我是否从根本上以错误的方式加密文件。
欢呼任何建议。 :)
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;
}
}