【问题标题】:Using <keygen> to get an RSA key for use with javascript?使用 <keygen> 获取用于 javascript 的 RSA 密钥?
【发布时间】:2011-05-10 14:40:59
【问题描述】:

我的 Web 项目需要一个 RSA 密钥对,虽然有一些库,但我认为依靠浏览器(为了安全和速度)为我生成密钥是个好主意。是否可以使用 keygen 或其他浏览器 API 来执行此操作?我不知道如何从 keygen 获取密钥。它们似乎是在提交时生成的,但我不想将它们发送到服务器。

【问题讨论】:

  • 它们没有发送到服务器。
  • 根据规范发送公钥。
  • @nep:是的,这就是重点 - 只会发送公钥(以在未来的会话中识别用户),但私钥存储在服务器所在的浏览器中(和服务器的 JavaScript)永远无法访问它。所以没有人可以伪造用户的身份,即使是服务器本身。
  • 我发现这篇文章很值得一读:matasano.com/articles/javascript-cryptography

标签: javascript html rsa


【解决方案1】:

您可能正在寻找类似 Mozilla 的 DOMCrypt API proposal 的东西。它允许您通过window.mozCrypto.pk.generateKeypair() 生成密钥对(window.mozCrypto 应该稍后更改为window.crypto),您可以获取公钥并使用私钥加密或解密文本。它仍然不会授予您直接访问私钥的权限,但是您只会获得一个密钥 ID。

很遗憾,目前任何浏览器都不支持此 API。只有一个Firefox extension可以用来测试它,所以这个提案还处于非常早期的阶段。但我认为这是你目前能得到的最好的结果。

【讨论】:

    【解决方案2】:

    我发现了这个site,谈论在浏览器中生成 RSA 密钥

    【讨论】:

    • 我认为它被否决了,因为它并没有真正回答问题 - 问题是关于使用浏览器的内置功能而不是第三方库。
    • 是的,我只是去期待答案,但我得到了一个例子,我需要深入研究;也许我会得到答案。
    • 该问题被否决,因为根据stackoverflow.com/help/how-to-answer,您应该“始终引用重要链接中最相关的部分。”
    【解决方案3】:

    在 JavaScript 中实现了一个类似 SSL 的协议:aSSL

    它使用 RSA 算法进行加密,您可以使用他们的密钥生成器。

    【讨论】:

      【解决方案4】:

      假设这是一个可怕的想法,因为可能会注入窃取私钥的代码。

      【讨论】:

        猜你喜欢
        • 2011-09-24
        • 1970-01-01
        • 2014-10-22
        • 2012-12-27
        • 2020-06-09
        • 1970-01-01
        • 1970-01-01
        • 2013-06-08
        • 2019-11-19
        相关资源
        最近更新 更多