computeRsaSha256Signature() 返回无效参数:密钥为公钥或 rsa 私钥时出现密钥错误

nib*_*ius 4 google-apps-script

我需要在 Google Apps 脚本中使用 RSA-SHA256 和公钥对消息进行签名。

我尝试使用Utilities.computeRsaSha256Signature(value, key)来实现此目的,但我收到一个Invalid argument: key错误。

为了这个问题的目的,我生成了一个像这样的密钥对:

openssl genrsa -out private.pem 32
openssl rsa -in private.pem -out public.pem -outform PEM -pubout
Run Code Online (Sandbox Code Playgroud)

我的脚本如下所示:

openssl genrsa -out private.pem 32
openssl rsa -in private.pem -out public.pem -outform PEM -pubout
Run Code Online (Sandbox Code Playgroud)

当我运行此命令时,我Invalid argument: key在第一次调用时收到错误computeRsaSha256Signature

该错误表明它们的密钥有问题,但我无法弄清楚问题出在哪里。我尝试过使用公钥和私钥,并且尝试删除换行符,但一切都失败并显示相同的消息。

我的代码看起来与文档中的示例非常相似,所以我不确定我做错了什么。

怎样才能Utilities.computeRsaSha256Signature()使用成功呢?

Joh*_*ohn 6

以 BEGIN PRIVATE KEY 开头的密钥与以 BEGIN RSA PRIVATE KEY 开头的密钥具有不同的格式。

我从“RSA”格式的密钥开始,但computeRsaSha256Signature需要非RSA格式的密钥。

您可以通过以下方式从后者转换为前者:

openssl pkcs8 -topk8 -inform pem -in private.pem -outform pem -nocrypt -out newPrivate.pem

资料来源: https ://plus.google.com/106009755685055488206/posts/bYuPM6MGwsU