首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >颤振SecretBox要求AES-GCM-256的MAC

颤振SecretBox要求AES-GCM-256的MAC
EN

Stack Overflow用户
提问于 2022-11-08 18:07:45
回答 1查看 53关注 0票数 0

我想解密AES-256-GCM数据。据我所知,GCM不需要MAC,但SecretBox在指定mac: Mac.empty时给了我异常SecretBox has wrong message authentication code (MAC)

下面是我的解密代码片段

代码语言:javascript
复制
final algorithm = AesGcm.with256bits();

final decryptedBody = await algorithm.decrypt(
      SecretBox(
        encryptedResponse,
        nonce: decryptionNonce,
        mac: Mac.empty,
      ),
      secretKey: key,
    );

有没有一种不用MAC就能解密的方法?因为我不能从密文的来源得到MAC。接收到的密文为<nonce>.<ctext>

据我所知,GCM不需要

我是密码学的初学者,所以这句话可能是不正确的,如果错了,请改正。

EN

回答 1

Stack Overflow用户

发布于 2022-11-09 14:30:00

由于@Topaco的评论,我设法解决了这个问题。

密文是<actualCipherText><MAC>的组合。MAC作为密文的最后16个字节附加。

下面是我的代码片段。

代码语言:javascript
复制
var encryptedData = YOUR_DATA;

//Getting the last 16 bytes
var mac = encryptedData.sublist(encryptedData.length - 16);

//Separating the ciphertext from the mac
encryptedData = encryptedData.sublist(0, encryptedData.length - 16);

//Decrypting
final decryptedData = await algorithm.decrypt(
    SecretBox(
       encryptedData,
       nonce: decryptionNonce,
       mac: Mac(mac),
    ),
    secretKey: key,
);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74365317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档