CN / EN
CN / EN

提问

获得支持

您的项目私密技术问题如需获得一对一支持,请点击下方联系我们。

AES CBC加密时遇到的两个问题 GR551x

已解决

lia****com

2022-09-26 11:13

1、如果更换了key之后再次加密出来的数据就不正确了。我用了一个for循环去不断更换key,发现:

第一个key加密正确,第二个key加密是错误的;第三个key加密正确,第四个key加密是错误的;……更换key需要做什么特殊处理吗?

2、当key上有多个符号时候,输出的加密信息有问题。如下所示,用全数字时候或者单个字符时候是正常的

char MyIv[16] = "0123456789012345";				//3210765410985432
//const char AES128_KEY[16] = "0123456789012345";
const char AES128_KEY[16] = "[?').;(Yf%*12345";		//)'?[Y(;.1*�432



0收藏

0赞成

最佳答案

Tim

2022-09-26 11:53

1、AES模块计算出现异常时,可以通过下列代码对AES模块进行复位,然后重新初始化进行计算

static void aes_hardware_reset(void)
{
    CLEAR_BITS(MCU_SUB->SECURITY_RESET, MCU_SUB_SECURITY_RESET_AES);
    SET_BITS(MCU_SUB->SECURITY_RESET, MCU_SUB_SECURITY_RESET_AES);
}

2、可以检查第三方工具和代码中所使用的符号的HEX值是否一致

0条评论

0赞成

0收藏

您的评论

登录后可回答问题,请 注册

我们时刻倾听您的声音
联系销售

扫描关注公众号

打开微信,使用“扫一扫”即可关注