【问题标题】:Hash list of cells text in Google SpreadsheetGoogle电子表格中单元格文本的哈希列表
【发布时间】:2016-05-25 10:43:41
【问题描述】:

如何计算单元格列表中文本的 MD5 或 SHA1 哈希?例如,我在 A 列的 1-100 行中有 100 个电子邮件地址,我希望将它们全部加密。我想在每个解密的电子邮件地址旁边的 B 列中写下加密的电子邮件。最好的方法是什么?

我已经阅读了answer here,但它并不完全有效

我对谷歌电子表格的经验很少:-(

我开始使用这个脚本,但一次只能加密一封电子邮件

function MD5 (input) {
  var rawHash = Utilities.computeDigest(Utilities.DigestAlgorithm.MD5, input);
  var txtHash = '';
  for (i = 0; i < rawHash.length; i++) {
    var hashVal = rawHash[i];
    if (hashVal < 0) {
      hashVal += 256;
    }
    if (hashVal.toString(16).length == 1) {
      txtHash += '0';
    }
    txtHash += hashVal.toString(16);
  }
  return txtHash;
}

【问题讨论】:

    标签: excel google-sheets


    【解决方案1】:

    像你一样定义MD5函数,然后在B1里面放:

    =arrayformula(MD5(A1:A100))
    

    【讨论】:

      【解决方案2】:

      如果你在下面添加以下函数,然后运行 ​​straightToText() 就可以了

      function straightToText() {
        var ss = SpreadsheetApp.getActiveSpreadsheet().getSheets();
        var r = 1;
        var n_rows = 9999;
        var n_cols = 1;
        var column = 1;
        var sheet = ss[0].getRange(r, column, n_rows, ncols).getValues(); // get first sheet, a1:a9999
        var results = [];
        for (var i = 0; i < sheet.length; i++) {
          var hashmd5= GetMD5Hash(sheet[i][0]);
          results.push(hashmd5);
        }
        var dest_col = 3;
        for (var j = 0; j < results.length; j++) {
          var row = j+1;
          ss[0].getRange(row, dest_col).setValue(results[j]);  // write output to c1:c9999 as text
        }  
      }
      

      【讨论】:

        猜你喜欢
        • 2011-12-21
        • 1970-01-01
        • 2023-01-17
        • 1970-01-01
        • 1970-01-01
        • 2021-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多