我正在实现mdn所示的pbkdf2的示例。 我的测试代码是
pom.xml
这将导致以下错误(打字稿3.3.4000):
let enc = new TextEncoder();
let password = enc.encode("password");
window.crypto.subtle.importKey(
"raw",
password,
{"name": "PBKDF2"},
false,
["deriveBits", "deriveKey"]
)
该代码在chrome中可以正常工作。
答案 0 :(得分:0)
以下(丑陋的)解决方法可以解决问题:
window.crypto.subtle.importKey(
"raw",
password,
{
"name": "PBKDF2",
// the next two lines are just to trick typescript
"generator": new Uint8Array(12),
"prime": new Uint8Array(12)
},
false,
["deriveBits", "deriveKey"]
)
这很丑陋,因为它诱使打字稿认为PBKDF2
对象与实际对象有所不同。
答案 1 :(得分:0)
我认为这个例子是错误的。当您查看Parameters section / algorithm
上方时,您会看到:
对于PBKDF2:传递字符串PBKDF2。
因此,不要使用{name: 'PBKDF2'}
来代替'PBKDF2'
。
MDN:SubtleCrypto.importKey()
https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/importKey#Parameters