Google电子表格中的单元格哈希列表文本

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

我已经在这里看到了答案 ,但并不完全正确

我对Google电子表格的使用经验很less:-(

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

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; } 

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

 =arrayformula(MD5(A1:A100)) 

如果您在下面添加下面的函数,然后运行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 } }