在客户端使用私钥对数据进行签名(javascript)

问题描述 投票:0回答:5

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

谢谢。

javascript cryptography openssl digital-signature private-key
5个回答
6
投票

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


3
投票

W3C Web 加密 API 可能会有所帮助。 我可以使用吗表示现代浏览器现在支持它。

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

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


1
投票

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

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

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

你可能想要像 PersistJS (http://pablotron.org/?cid=1557) 这样非常烦人的东西来尝试尽可能长时间地保存私钥。


0
投票

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


© www.soinside.com 2019 - 2024. All rights reserved.