小编Nis*_*eph的帖子

为什么 WebCryptoAPI RSA-OAEP 加密函数无法使用给定密钥大小的预期最大块大小?

我正在尝试使用crypto.subtle.encrypt来加密一些数据,但遇到了我一次可以加密的数据量的问题。使用 RSA-OAEP 的 2048 位密钥的最大块大小为 214 字节,如链接crypto.stackexchange.comstackoverflow.com 中使用关系所示maxChunkSizeInBytes = keySizeInBytes – 42

使用crypto.subtle.encrypt2048 位密钥和 RSA-OAEP 算法,我只能加密 190 字节。低于 190 字节的任何数量都可以正常工作,高于 190 字节的任何数量都会导致错误。我不完全确定错误的类型(因为我无法捕捉到它),但我认为它是一个OperationError参考developer.mozilla.org

在这里所示的例子打字稿有两个数据块d1d2与尺寸分别190个字节和214个字节。数据块d1加密得很好,但是d2 没有。

const MSG_LEN_1 = 190;
const MSG_LEN_2 = 214;

const d1 = (window.crypto.getRandomValues(new Uint8Array(MSG_LEN_1))).buffer;
const d2 = (window.crypto.getRandomValues(new Uint8Array(MSG_LEN_2))).buffer;

let encData = async (data: ArrayBuffer) => {
    const key = await crypto.subtle.generateKey(
        {
            name: "RSA-OAEP",
            modulusLength: …
Run Code Online (Sandbox Code Playgroud)

encryption rsa webcrypto-api

5
推荐指数
1
解决办法
226
查看次数

标签 统计

encryption ×1

rsa ×1

webcrypto-api ×1