JuneAndGreen / sm-crypto

国密算法js版
MIT License
943 stars 255 forks source link

sm4 padding:none #70

Closed peachapp closed 2 years ago

peachapp commented 2 years ago

sm4.encrypt(word, key, {padding: 'none'}) 设置padding:none后,再解密,原文只有一半了

changhr2013 commented 2 years ago

@peachapp 加密有问题的原文样本给一个看看

peachapp commented 2 years ago

sm4.encrypt("呵呵呵heheh", "0123456789abcdeffedcba9876543210",{padding: 'none'}) 解密后就变成a=呵呵呵heh

changhr2013 commented 2 years ago

@peachapp 你这个原文是 14 个字节,nopadding 模式下要求原文必须为 block 的整数倍,即原文字节数必须为 16 的整数倍,如果是变长的原文,需要使用 pkcs7padding 之类的规则做填充。

peachapp commented 2 years ago

好吧,所以就是必须使用填充