Google电子表格:使用Google Apps脚本加密单元格内容
-
27-12-2019 - |
解决方案
- 下载源.js文件。
- 在文本编辑器中打开.js文件
- 将所有代码复制/粘贴到新的脚本项目
- 在这里,您可以“重新创建”原始的.js文件(单独复制/粘贴源),其中包含相同的名称
- 将该脚本项目的项目键包含为您想要使用这些功能的项目的库。
即使项目是开源,您需要确保如果您将使用它们,请确保您遵守这些项目的许可证。
这基本上是一个小的“黑客”,没有能够将.js文件上传到天然气项目。假设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
}
.
您会在其中询问用户的密码,如果密码哈希匹配存储在电子表格中的哈希值或无论何处,那么您将验证。您可以使用它来模拟登录到UIAPP GUI,例如:在数据库中存储用户名/密码哈希,并在加载“真实”应用程序之前验证用户。
但是,如提到的Serge,电子表格将在散列之前包含原始值的修订历史,以及它散列后的值。如果要避免此操作,请使用scriptdb。
ps - 除此之外,我会说目前可能无法将非气体代码库“导入”脚本项目,除非您手动复制源文件逐个文件到脚本项目中。问题跟踪器可能有一个功能请求,如果不是,您可以创建一个,我会明白它。
编辑:根据请求,我包括开源AES 加密“包”(也包含Base64,也包含在答案中),作为想要在天然气加密的其他人的参考。确保您遵循作者的要求,该请求是保留原始版权并链接回源。
除了链接的AES和简单的哈希(等于Java的String.HashCode()),可以找到它的资源这里,您在问题中提到的加密JS,如果您花了时间全面复制/粘贴。所有代码(假设与许可证的条款同意 - 我尚未阅读),您可以通过我在答案的上半部分中描述的步骤使用。
md5在javascript 中也是您可以使用的算法。如果在页面顶部的 md5.js 中使用代码,则您可以拥有所需的东西。再次,如果您使用它,请确保您按照许可规则。
p> p>我可能只是使用散列和 base-64 模式,因为大多数你将使用这种加密的大多数都是不可思议的重要性。 AES可能需要更长的时间来计算 - 你可以自己基准,看看它是否会在延长一段时间内运行的触发器造成重大问题,但我怀疑这将是一个问题。注意:base-64是双向,也是aes。 MD5是一种哈希类型,我提供的简单哈希函数也(当然)是哈希。哈希函数是单向的。因此,如果您需要双向功能(加密/解密),则使用Base-64或AES。基本64基本上是AES的孩子版本。简单的哈希函数是MD5的孩子版本。记住这一点:)
编辑再次:我不熟悉iOS开发或其内部,但它似乎对我来说, iOS至少可以做一些加密操作< / a>。您可能希望阅读更多这些方法,因为我并不真正肯定你如何将天然气和iOS放在一起;不幸的是,我无法在该地区提供任何帮助。
其他提示
上面的功能对我不起作用。以下是您可以将其复制和粘贴到Google Sheets(电子表格)脚本编辑器
中的内容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时的目标
基于此帖子这里