【问题标题】:Generate a public / private Key RSA with Apps Scripts使用 Apps 脚本生成公钥/私钥 RSA
【发布时间】:2018-08-24 00:32:16
【问题描述】:

我想使用 Google 的 Apps 脚本服务创建一个公钥/私钥 RSA。我找到了文档,但是当您可以创建密钥并将其导出到 XML 时,没有看到它有类似“生成密钥”或在 c# 中使用 RSACryptoServiceProvider 之类的东西。

我看一下这个文档https://developers.google.com/apps-script/reference/utilities/

var signature = Utilities.computeRsaSha256Signature("this is my input",
    "-----BEGIN PRIVATE KEY-----\nprivatekeyhere\n-----END PRIVATE KEY-----\n");

我怎样才能生成我的“KEY”,正确的方法是什么?

为了澄清我的要求,在 c# 中我们可以这样做。

using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(keySize))
      {
        privateKey = RSA.ToXmlString(true);
      }

这将生成一个私钥运行时,我尝试对 Apps Script 做同样的事情,这可能吗?

编辑部分

事实上,我已经有一个 javascript 类,我可以生成 RSA 密钥,但是在 .Gs 代码文件中运行它需要很多时间。我的 Javascript 代码在浏览器中运行良好,但是当它运行到 .gs 文件时......它看起来非常慢

我正在寻找 Google 的“本地”服务来做这件事..

【问题讨论】:

    标签: javascript google-apps-script rsa


    【解决方案1】:

    您不使用 Google Apps 脚本生成 RSA 公钥/私钥。您将应用程序脚本与您在其他地方生成的 RSA 密钥一起使用。有很多方法可以生成它们。

    其中一个正在使用 openssl。

    在此链接中,您有使用 openssl 生成它们的说明:

    https://developers.yubico.com/PIV/Guides/Generating_keys_using_OpenSSL.html

    @edit 我在 SO 中发现了至少 4 个问题,展示了如何使用 javascript 来做到这一点:

    Generate RSA keys using javascript?

    How to generate rsa key pair in client side using angular2?

    Generate RSA key pair in javascript, based on a password

    Generate well-formed SSH key in JavaScript

    请在询问之前先搜索一下。

    【讨论】:

    • 是的,但如果我需要在运行时生成它!我该怎么做?您告诉我我们无法在运行时生成 RSA 密钥。
    • 谢谢,但事实上我已经有了在 Jasvascript 中生成 RSA 密钥的算法。我的问题是我无法在我的 .gs 代码中生成 512 位密钥大小,这需要很长时间。在javascript中,在浏览器中,没有问题。我正在寻找能够生成我的密钥而不是使用本机 javascript 的 Google 服务。
    • 但您的链接可能对寻找原生 javascript 的人有用
    • AFAIK 没有谷歌服务。甚至 Google 支持都建议您使用 openssl 生成。看:support.google.com/a/answer/6342198?hl=en
    • 特谢拉,感谢您的帮助。 “谢谢你的帮助”;-)