javascript – Google电子表格:使用Google Apps脚本加密单元格内容
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – Google电子表格:使用Google Apps脚本加密单元格内容,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2971字,纯文字阅读大概需要5分钟。
内容图文
![javascript – Google电子表格:使用Google Apps脚本加密单元格内容](/upload/InfoBanner/zyjiaocheng/803/6738089f8c54448e8cad423a2d355643.jpg)
我有一个谷歌电子表格,并希望加密几个单元格的内容(我不关心使用哪种加密方法,只要有一个等效的iOS解密方法).
遗憾的是,Google Apps脚本中没有内置加密功能.
出于这个原因,我想使用像Crypto-JS和sjcl这样的开源Javascript库.
如何在Google Apps脚本中使用其中一个库?
在Google Apps脚本文档中,我没有找到任何关于如何在我的Google Apps脚本中使用外部JavaScript库的线索.
解决方法:
好吧,我会说这个,因为这是我和Date JS一起使用的方法.您可以执行以下操作:
>下载源.js文件.
>在文本编辑器中打开.js文件
>将所有代码复制/粘贴到新的脚本项目中
>在这里,您可以使用相同的名称“重新创建”原始.js文件(单独复制/粘贴源)
>将该脚本项目的项目键包含在要使用这些功能的项目库中.
即使项目是开源的,如果您打算使用这些项目,也需要确保遵守这些项目的许可.
这基本上是一个小的“黑客”无法将.js文件上传到GAS项目.假设JS是标准的,这种方法将适用于Google的系统.
另一个选择是简单地找到一个轻量级的单功能或双功能加密包,或者单个加密算法,如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所提到的,Spreadsheets将包含在散列之前的原始值的修订历史记录,以及散列后的值.如果要避免这种情况,请使用ScriptDB.
PS – 除了这种解决方法之外,我会说现在不可能将非GAS代码库“导入”到脚本项目中,除非您手动将源文件复制到脚本项目中.问题跟踪器上可能已有功能请求,如果没有,您可以创建一个,我会为其加注星标.
编辑:根据要求,我在答案中包括an open source AES加密“包”(包含base64,这很好),作为其他想要在GAS中加密的人的参考.请务必遵循作者的要求,即保留其原始版权并链接回源.
除了我链接的AES和简单的哈希(相当于Java的String.hashCode()),其资源可以找到here,你的问题中提到了Crypto-JS,如果你花时间完全复制/粘贴所有代码(假设它与许可条款一致 – 我还没有读过它),你可以按照我在答案的上半部分描述的步骤使用它.
MD5 in Javascript也是一种可以使用的算法.如果您使用位于页面顶部的md5.js中的代码,您将拥有所需的代码.同样,如果您使用它,请确保遵循许可规则.
就个人而言,我可能只是使用hash和base-64模式,因为你使用这种加密的大部分内容可能并不是非常重要. AES可能需要更长的时间来计算 – 您可以自己对其进行基准测试,看看它是否会导致触发器运行很长一段时间的主要问题,但我怀疑它无论如何都会成为一个问题.
注意:base-64是双向的,AES也是. MD5是一种散列,我提供的简单散列函数(当然)也是散列.散列函数是单向的.因此,如果您需要双向功能(加密/解密),则使用base-64或AES. Base-64基本上是AES的儿童版本.简单的哈希函数是MD5的孩子版本.记住这一点:)
再次编辑:我不熟悉iOS开发或其内部,但在我看来,iOS can at least do some cryptographic operations.你可能想要阅读更多这些方法,因为我不确定你是如何把GAS和iOS放在一起的;不幸的是,我无法在这方面给你任何帮助.
内容总结
以上是互联网集市为您收集整理的javascript – Google电子表格:使用Google Apps脚本加密单元格内容全部内容,希望文章能够帮你解决javascript – Google电子表格:使用Google Apps脚本加密单元格内容所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。