4

我希望能够使用 100% JavaScript 和基于加密令牌的密钥在浏览器上签署数据。

从我目前所看到的情况来看,此功能的所有旧实现都已停止使用(例如new ActiveXObject("CAPICOM.Store");,由于它引发错误,甚至似乎不再在 IE11 中工作!-我不知道我是否遗漏了什么......也许是因为我在控制台窗口中运行它......)。

我查看了 WebCryptoAPI 的规范(这应该是新的支持方式):

http://www.w3.org/TR/WebCryptoAPI/#SubtleCrypto-method-sign

......然后在这个(更清晰,更有条理和有帮助):

http://msdn.microsoft.com/en-us/library/ie/dn302332(v=vs.85).aspx

...我看到它允许您创建新密钥(generateKey),但我不确定它是否支持使用令牌中的密钥。有一个importKey,但从描述看来,我不需要使用操作系统可以看到的现有密钥进行签名。

这个网络标准是否旨在允许这种功能?我可以像现在一样使用它并实现我的目标吗?

我至少可以在具有设备管理器(选项->证书->安全设备)的 Firefox 中做得更好吗?

相关问题:

使用 JavaScript 在浏览器的密钥库中访问签名/加密 - 示例代码?(WebCryptoAPI)

带有 OS 密钥库的 chrome 上的 js 签名

更新:

我还找到了这个 PDF: http ://webpki.org/papers/PKI/x509-webcrypto-extension-scheme.pdf

据我所见,window.crypto.subtle.KeyStore任何浏览器中都没有,所以我想这是人们对遥远未来的疯狂梦想......

UPDATE2: 这就是我无法在 IE11 中加载 ActiveX 的原因:https ://stackoverflow.com/a/5157766/2173353

所以,至少,还有一种旧方法仍在工作......

4

1 回答 1

1

不,目前没有。用户的硬件或软件令牌仍然不可用。有关更多信息,请参阅 Eugene 的评论(关于问题)。

于 2015-08-01T19:59:51.960 回答