gue*_*est 11 javascript cryptography google-chrome
这真是令人尴尬
几乎在互联网上的任何网站上,
window.crypto.subtle
Run Code Online (Sandbox Code Playgroud)
回报
SubtleCrypto {}
__proto__: SubtleCrypto
Run Code Online (Sandbox Code Playgroud)
在chrome控制台中(v61(官方版)(64位))
除了
我的网页和blank.org
哪里
window.crypto.subtle
Run Code Online (Sandbox Code Playgroud)
回报
undefined
Run Code Online (Sandbox Code Playgroud)
根据https://developer.mozilla.org/en-US/docs/Web/API/Crypto/subtle 它是一个只读属性,应始终返回SubtleCrypto对象.
我可以做些什么,或者什么有空白做了它可能没有?
ps:在Firefox中,它似乎在我的网站和blank.org上按预期工作
Zma*_*art 35
根据规范(通过Github问题)来自WebCrypto的这个Google页面:
crypto.subtle在不安全的上下文中应该是未定义的
小智 6
看起来你必须使用带有 https://...... 的网站,而不是普通的 http://......
从规范中 - 很容易错过(并由上面的 Zmart 链接):
对 WebCrypto API 的访问仅限于安全来源(即 https://pages)。
检查您的网址
如果是
https://localhost:PORT
或0.0.0.0:port
或127.0.0.0:port
将其更改为正确的主机名URL,例如
http://localhost:PORT
为我工作!谢谢@Zmart
如果您不运行您的网站SSL,https答案是:您不能使用window.crypto.subtle. 您必须配置SSL您的网络服务器。查看有关Crypto.subtle的 MDN 文档,页面顶部有一个很大的警告,表示“安全上下文”,这意味着它仅在https.
但如果您仍然需要支持,还有一个替代解决方案http。并且它不涉及使用window.crypto.subtle而是其他开源第三方库。具体方法如下:
您可以使用Forge,它是一个具有相同功能的加密库,window.crypto.sybtle它具有满足您需求的所有加密算法。
您可以使用 forge,而不是window.crypto在 上运行服务http。
请注意,API 非常不同,您需要使用forge与使用window.crypto. 您需要阅读Forge 文档,以使特定的加密方法适合您的用例。使用forge时,您不能使用在 window.crypto.subtle 中工作的相同代码,您需要找到自己的方式如何使用 forge 进行加密。
供您参考,了解forgeVS window.crypto.subtleCode 有何不同,请阅读下文。
链接到原始window.crypto.subtle的 darkwire.io 代码和翻译后的 darkwire.io 代码,而forge不是使用window.crypto.subtle:
我已经将 darkwire.io 翻译为将 forge 用于我自己的项目,该项目运行http并需要客户端之间的加密通信方法。
| 归档时间: |
|
| 查看次数: |
7106 次 |
| 最近记录: |