gpt4 book ai didi

Javascript RSA-OAEP 不适用于任意输入长度

转载 作者:行者123 更新时间:2023-11-29 10:09:10 26 4
gpt4 key购买 nike

<分区>

我正在尝试使用 SubtleCrypto 在 javascript (firefox) 中加密字符串。问题在于,加密仅适用于短输入。一旦字符串 (testdata) 超过 190 个字符,它将因 OperationError 而失败。为什么 SubtleCrypto 会这样,我该如何解决?

代码:

function str2ab(str) {
var encoder = new TextEncoder('utf-8');
return encoder.encode(str);
}

function ab2str(buf) {
var decoder = new TextDecoder('utf-8');
return decoder.decode(buf);
}

var keypair;
var algorithmKeyGen = {
name: 'RSA-OAEP',
modulusLength: 2048,
publicExponent: new Uint8Array([1,
0,
1
]), // Equivalent to 65537
hash: {
name: 'SHA-256'
}
};
var crypter = window.crypto.subtle;

function encrypt(buffer) {
return crypter.encrypt(algorithmKeyGen, keypair.publicKey, buffer).then(
function(data) {
alert(ab2str(data));
},
function(error) {
alert(error);
}
);
}

var testdata = "aasasadasdaasasadasdaasazzzzzzzzzzzzzzzzzzzzuuuuuuuuuuuuuuuuuuuuuuuzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzuuuuudddsdfssssssssssdddddddddddzzzzzzzzzzzzzzzzzzzzzzzzzzzzzppppppggppppppppppppppppssssstt"

crypter.generateKey(algorithmKeyGen, true, [
'sign',
'encrypt',
'decrypt',
'verify',
'deriveKey'
]).then(function(res) {
keypair = res;
encrypt(str2ab(testdata));
}, console.error.bind(console, 'Unable to generate a key'));

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