【问题标题】:Google sheet: import a library (CryptoJS)谷歌表:导入库(CryptoJS)
【发布时间】:2020-03-20 13:25:31
【问题描述】:

我正在使用 google sheet webscript 来操作电子表格数据,并且我想使用以下函数来加密某些单元格:

var encrypted = CryptoJS.AES.encrypt("message", "Secret key");

可以选择将库添加到 Google Sheet webscript,但我不知道如何安装库。根据 Google 文档,您需要项目密钥/脚本 ID 才能使用该库,但我一直无法找到此类信息。

有人可以协助如何实际导入此 CryptoJS 库以在 webscript 中使用。


【问题讨论】:

  • 您好@MichaelTolsma,您可能根本不需要CryptoJS 库,因为如果您想加密某些单元格,您可能会使用本文档here 中提供的一些方法。干杯!

标签: google-apps-script google-sheets cryptography cryptojs


【解决方案1】:

这个答案怎么样?请认为这只是几个可能的答案之一。

问题和解决方法:

不幸的是,在现阶段,Google Apps Script 方法中似乎没有直接实现 AES 加密的内置方法。

那么在这种情况下,下面的变通方法怎么样?

模式一:

在此模式中,使用crypto-js

用法:

1.获取crypto-js:

请访问https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js。并将脚本复制并粘贴到脚本编辑器中。

2.示例脚本:

复制粘贴crypto-js后,请复制粘贴以下示例脚本。

function myFunction() {
  var key = "sampleSecretKey";
  var value = "sampleMessage";

  var encryptedMessage = CryptoJS.AES.encrypt(value, key).toString();
  var decryptedMessage = CryptoJS.AES.decrypt(encryptedMessage, key).toString(CryptoJS.enc.Utf8);

  Logger.log(encryptedMessage);
  Logger.log(decryptedMessage);
}
  • 运行myFunction()的函数时,会返回加密和解密的值。

模式 2:

在此模式中,使用了"cCryptoGS",它是一个 Google Apps 脚本库。

用法:

1. 安装 Google Apps 脚本库:

项目密钥为MSJnPeIon6nzdLewGV60xWqi_d-phDA331IEkpeS8hsMSVLRdCMprij996zG6ek9UvGwcCJao_hlDMlgbWWvJpONrs。两个键是同一个库。

Please install the GAS library using this project key.

2.示例脚本:
function myFunction() {
  var key = "sampleSecretKey";
  var value = "sampleMessage";

  var cipher = new cCryptoGS.Cipher(key, 'aes');
  var encryptedMessage = cipher.encrypt(value);
  var decryptedMessage = cipher.decrypt(encryptedMessage);

  Logger.log (encryptedMessage);
  Logger.log (decryptedMessage);
}
  • 运行myFunction的函数时,会返回加密和解密的值。

参考资料:

如果这不是你想要的方向,我很抱歉。

【讨论】:

  • 我无法让模式 1 工作,但模式 2 似乎是一个不错的选择。谢谢!
  • @Michael Tolsma 感谢您的回复。很高兴您的问题得到解决。
  • 您是否知道第二种方法是否有“iv”值?
  • @Michael Tolsma 不幸的是,我不确定。这是因为我的技术不好。我对此深表歉意。比如问图书馆的作者怎么样?
  • 我最终不得不获取 AES 部分的整个源代码,并将其作为单独的文件添加到我的 GSheet 网页脚本中。这样我就可以直接访问 CryptoJS 方法,而不是通过 cCryotoGS。
猜你喜欢
  • 2019-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-22
相关资源
最近更新 更多