Я хочу сгенерировать ключ общего доступа с помощью алгоритма PBKDF2 и следую руководству MDN https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/deriveKey
Однако я генерирую «пустой» ключ со следующим кодом.Надеюсь, что кто-то может помочь мне решить проблему.Спасибо!
async function generateSecretKey() {
const globalSalt = 'e85c53e7f119d41fd7895cdc9d7bb9dd';
let passPhraseSalt = await hexToBuffer(globalSalt);
let passPhraseKey = await utf8ToBuffer('password');
let key = await crypto.subtle.importKey(
'raw',
passPhraseKey, {
name: 'PBKDF2'
},
false,
['deriveBits', 'deriveKey']
)
let key2 = await crypto.subtle.deriveKey({
"name": 'PBKDF2',
"salt": passPhraseSalt,
"iterations": 1000,
"hash": 'SHA-256'
},
key, {
"name": 'AES-CBC',
"length": 256
},
true,
["encrypt", "decrypt"]
)
let key3 = await crypto.subtle.exportKey("raw", key2);
let secretKey = await bufferToHex(key3);
return secretKey;
}
function bufferToHex(arr) {
var i;
var len;
var hex = '';
var c;
for (i = 0, len = arr.length; i < len; i += 1) {
c = arr[i].toString(16);
if (c.length < 2) {
c = '0' + c;
}
hex += c;
}
return hex;
}
Ссылка на скриншот