7

我知道,这看起来很奇怪,但我需要仅使用 javascript 在客户端签署一些数据,没有可用的服务器端 openssl 的 ajax 后门。有人可以建议一些客户端解决方案来使用私钥签署数据吗?是否可以?

谢谢。

4

4 回答 4

6

找到了很棒的签名工具。它实现了 RSA-SHA1(工作完美)和 RSA-SHA256(工作奇怪),并允许使用私钥生成签名并使用证书验证签名。

于 2011-03-23T07:17:32.400 回答
2

我和你走的路一样,你最好实施像oAuth这样的东西。

您提出的问题是,绝对没有可靠的方法将私钥存储在客户端计算机上,现在也没有安全地将公钥返回到服务器而不是 HTTPS(如果您使用的是 HTTPS,那么这是什么意思?)

如果你真的想继续,那里有一些实现: http: //shop-js.sourceforge.net/crypto2.htm

而且您可能想要像 PersistJS (http://pablotron.org/?cid=1557) 这样令人讨厌的东西来尝试尽可能长时间地保存私钥。

于 2011-03-21T18:00:15.710 回答
1

W3C Web Cryptography API可能会有所帮助。 Can I use表示现代浏览器现在支持它。

如需其他数字签名支持,请查看GlobalSign/PKI.js

PKIjs 是一个纯 JavaScript 库,实现了 PKI 应用程序中使用的格式(签名、加密、证书请求、OCSP 和 TSP 请求/响应)。它建立在 WebCrypto (Web Cryptography API) 之上,不需要插件。 http://pkijs.org

于 2015-06-03T15:09:10.227 回答
0

Web Crypto 似乎是答案。这是一个教程(不是我的)。至于评论,如果您使用的是 https,为什么需要签名 - 这些用于两个不同的目的。在信息安全术语中,前者提供机密性,后者提供不可否认性

于 2018-05-10T17:26:26.317 回答