Javascript 谷歌电子表格:使用谷歌应用程序脚本加密单元格内容
我有一个谷歌电子表格,想对几个单元格的内容进行加密(我不在乎使用哪种加密方法,只要iOS有一种等效的解密方法) 不幸的是,谷歌应用程序脚本中没有内置的加密功能 出于这个原因,我想使用和这样的开源Javascript库 如何将这些库与Google应用程序脚本一起使用Javascript 谷歌电子表格:使用谷歌应用程序脚本加密单元格内容,javascript,google-apps-script,google-sheets,cryptojs,sjcl,Javascript,Google Apps Script,Google Sheets,Cryptojs,Sjcl,我有一个谷歌电子表格,想对几个单元格的内容进行加密(我不在乎使用哪种加密方法,只要iOS有一种等效的解密方法) 不幸的是,谷歌应用程序脚本中没有内置的加密功能 出于这个原因,我想使用和这样的开源Javascript库 如何将这些库与Google应用程序脚本一起使用 在Google Apps脚本文档中,我没有找到任何关于如何在Google Apps脚本中使用外部JavaScript库的线索。我会这么说,因为这是我使用的方法。您可以执行以下操作: 下载source.js文件 在文本编辑器中打开.js
在Google Apps脚本文档中,我没有找到任何关于如何在Google Apps脚本中使用外部JavaScript库的线索。我会这么说,因为这是我使用的方法。您可以执行以下操作:
- 在这里,您可以使用相同的名称“重新创建”原始.js文件(分别复制/粘贴源文件)
另一个选择是简单地找到一个轻量级的一个或两个函数的加密包,或者一个单一的加密算法,比如AES-128(当然,您有权使用它)。这实际上取决于您想要多少加密,如果您需要反转密码文本以获得纯值,等等 如果这是某种密码系统的一个例子,我建议使用一个简单的散列。例如:
function stringHash (someString) {
var hash = 0;
if (this.length == 0) return hash;
for (i = 0; i < this.length; i++) {
char = this.charCodeAt(i);
hash = ((hash << 5) - hash) + char;
hash = hash & hash;
}
return Math.abs(hash); // Personally I don't like negative values, so I abs'd it
}
函数stringHash(someString){
var散列=0;
如果(this.length==0)返回哈希;
对于(i=0;i hash=((hash上面的函数对我不起作用。下面是一些你可以复制并粘贴到GoogleSheets(电子表格)脚本编辑器中的东西
function enc(str) {
var encoded = "";
for (i=0; i<str.length;i++) {
var a = str.charCodeAt(i);
var b = a ^ 123; // bitwise XOR with any number, e.g. 123
encoded = encoded+String.fromCharCode(b);
}
return encoded;
}
函数enc(str){
var编码=”;
对于(i=0;i在Google电子表格中使用加密可能不是一个好主意,因为内置的修订历史记录允许任何用户在加密之前查看vale…你认为如何解决这个问题?@Serge insas我将在同一电子表格中存储加密值和原始值。脚本将仅将加密值上载到服务器使用REST协议。包括原始值的电子表格将不会被任何人看到。好的,很高兴知道;-)你将如何编写你的服务应用程序?也是GAS?我的问题是你不能在应用程序中而不是在SS中加密它吗?(只是一个问题)理论上是的,但我想要所有的“逻辑”还有一个地方就是电子表格。我不知道是否可以满足您的需要。谢谢您的全面回答!您能推荐一个简单的轻量级代码源吗?我只需要“一些”加密,没什么特别的。我对我的原始答案做了一个重要的补充,请参阅底部的编辑部分。我希望这有帮助:)哦,如果这些方法之一似乎适合您的需要,请确保将其作为答案;)