如何在单元格列表中计算文本的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;
}
答案 0 :(得分:2)
像你一样定义MD5
函数,然后在B1
put:
=arrayformula(MD5(A1:A100))
答案 1 :(得分:0)
如果你在下面添加以下函数然后运行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
}
}