计算Google云端硬盘中文件的SHA1哈希值

时间:2017-09-10 16:49:35

标签: javascript hash google-apps-script google-drive-api sha256

我需要在我作为网络应用部署的应用脚本中计算通过ajax上传到Google云端硬盘的文件的SHA-256哈希值。在服务器代码中,我正在计算它:

function getHash(file) {
  var hashBytes = Utilities.computeDigest(Utilities.DigestAlgorithm.SHA_256, file.getBlob().getDataAsString());
  // convert raw bytes into a base16-encoded string
  var hash = "";
  for(var i=0; i<hashBytes.length; i++) {
    var byte = hashBytes[i];
    if(byte < 0) {
      byte += 256;
    }
    var byteString = byte.toString(16);
    // if byte is not represented by 2 chars it must be 0-padded
    if(byteString.length == 1) {
      byteString = '0' + byteString;
    }
    hash += byteString;
return hash;
  }

然而,计算的散列不同于我对同一文件得到的散列,例如执行

shasum -a 256 myfile

在bash shell中。我的getHash()函数有什么问题吗?

我需要此功能才能处理任何文件类型。

0 个答案:

没有答案