Crypto-JS AES文件加密和解密非常慢

时间:2017-02-22 23:39:23

标签: javascript encryption cryptography cryptojs wsh

我正在编写一个脚本来使用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;
  }
}

0 个答案:

没有答案