Javascript 如何使用微妙的';s加密API?

Javascript 如何使用微妙的';s加密API?,javascript,subtlecrypto,webcrypto,Javascript,Subtlecrypto,Webcrypto,在WebCrypto/Divery crypto API中,您可以生成密钥等等。然而,似乎明显缺少.destroyKey()或类似的东西 当它们的引用计数达到零或类似的值时,键是否被清除?是否无法从内存中明确销毁/删除密钥 请注意,我关心的不是安全问题,因为我知道这不会给安全带来太多好处,尽管我担心资源泄漏之类的问题。无法在自我明确之后进行清理感觉很奇怪。网络加密规范: 作者应注意,本规范对如何存储底层加密密钥材料的实现没有任何规范性要求。唯一的要求是,除非通过使用exportKey和wrapK

在WebCrypto/Divery crypto API中,您可以生成密钥等等。然而,似乎明显缺少
.destroyKey()
或类似的东西

当它们的引用计数达到零或类似的值时,键是否被清除?是否无法从内存中明确销毁/删除密钥


请注意,我关心的不是安全问题,因为我知道这不会给安全带来太多好处,尽管我担心资源泄漏之类的问题。无法在自我明确之后进行清理感觉很奇怪。

网络加密规范:

作者应注意,本规范对如何存储底层加密密钥材料的实现没有任何规范性要求。唯一的要求是,除非通过使用exportKey和wrapKey操作,否则密钥材料不会暴露于脚本

一旦所有对关键材料的引用消失,本规范对实现如何处理关键材料没有任何规范性要求。也就是说,一致性用户代理不需要将密钥材料归零,并且即使在对加密密钥的所有引用都消失之后,仍可在设备存储器或设备存储器上访问密钥材料

也就是说,用户代理可以选择在其
加密密钥
符合垃圾收集条件时丢弃密钥数据,但也可以选择将数据保留更长时间,例如,直到在导航到不同页面或关闭浏览器选项卡时丢弃整个浏览上下文


在实践中,这种差异不太重要:任何支持web的设备的内存中都可以容纳数千个甚至数百万个密钥,因此由于延迟收集密钥材料而耗尽内存的可能性非常小。既然浏览器实现者有保持低内存使用率的动机,大多数人会选择在收集
加密密钥时释放密钥材料

为什么您觉得需要“清理”或“销毁”密钥?你想完成什么?(你说这与安全无关——那是关于什么?@meriton没有泄露资源。我们正在生成相当多的键,所以我很好奇什么时候(如果有的话)清理这些键。AFAIK JavaScript处理内存的垃圾收集,所以不必担心内存“泄漏”或其他任何问题——应该为您清理所有这些键,不需要显式清理。@Nisala我不是这么问的。我知道JavaScript中垃圾收集是如何工作的,但我想知道WebCrypto的情况下会发生什么。正如公认的答案所表明的那样,并非所有的资源天生都是一样的。