gpt4 book ai didi

javascript - 如何区分 JS 不透明对象?

转载 作者:行者123 更新时间:2023-11-30 00:18:30 25 4
gpt4 key购买 nike

WebCrypto API引入了不可导出私钥的概念,它可以导出到 IndexDB 但不能导出到 LocalStorage 或通过网络。这在 Charles Engleke 的博客“Saving Cryptographic Keys in the Browser”中有很好的解释。

但是这些对象实际上是如何工作的呢?有没有办法从 JS 判断一个对象是否不透明?我找不到任何关于此的信息。

最佳答案

任何地方都没有神奇的“不透明标志”。此处的“不透明”仅表示对象中保存的数据对脚本永远 不可见。您仍然可以使用 CryptoKey 实例执行一些操作 - 例如在这种情况下,将其存储在 Indexed DB 中或通过 postMessage() 发送到另一个上下文。

这与例如Blob 对象,其中所有 保存的数据可以通过对象的属性直接检查或通过 FileReader 间接检查。

另一个不透明的例子是作为跨域结果的 Response 对象 Fetch操作,可以由 Service Worker 处理但无法检查 body 的地方。

那么“有没有办法从 JS 判断一个对象是否不透明?” - 这取决于。如果对象是 CryptoKey 的实例,那么您就知道存在隐藏数据,因此它是不透明的。如果对象是 Blob 的实例,那么您就知道有一种方法可以访问数据,即使您需要其他 API 才能访问它,所以它不是不透明的。如果对象是 Response 的实例,则它可能是不透明的,具体取决于来源。

关于javascript - 如何区分 JS 不透明对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33971634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com