SM4解密报错


最近项目中需要用国密SM4对传输报文进行加密,于是写了个简单的测试案例,对于简单的字符串加密解密是没问题的,但是对比较长的报文进行解密时,会报出异常信息:Last block incomplete in decryption,想到会不会是因为某些特殊字符影响到了,于是使用Base64在加密后进行编码,在解密前进行解码,问题真的解决了。
原因可能是以下两个方面:
1.使用Base64编码使得密钥具有可读性,方便密钥的发放;
2.使用Base64编码防止意外生成的系统定界字符(编码为base64之前 数据是以字节数组存放, 里面任何二进制字符都是可能的。如果有的语言以\0作为字符串结束标志,正好字节数组里面有\0的话,可能会有问题);


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM