我需要Crypto-JS在8字节块上执行DES加密(现在)。但是,我在没有填充的情况下在crypto-js中遇到这个问题。
当我表演时:
var skl = CryptoJS.DES.encrypt ( CryptoJS.enc.Hex.parse ( "0000000000000000" ), CryptoJS.enc.Hex.parse ( "0000000000000000"),
{ iv : CryptoJS.enc.Hex.parse ( "0000000000000000" ), mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.NoPadding } );
我没有输出。 CBC模式不需要填充,但我已经尝试了所有其他块模式(OFB / CFB等),但仍然没有输出。当我使用Pkcs7时,它确实提供输出,但它填充输入块,导致16字节的密码消息。我想当你指定填充时,即使块大小兼容,它总是会填充?
var skl = CryptoJS.DES.encrypt ( CryptoJS.enc.Hex.parse ( "0000000000000000" ), CryptoJS.enc.Hex.parse ( "0000000000000000"),
{ iv : CryptoJS.enc.Hex.parse ( "0000000000000000" ), mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 } );
我是否以正确的方式指定输入数据(通过十六进制解析)?重要的是我加密固定大小的原始字节&似乎没有任何这方面的例子。
没有填充的DES加密数据的正确方法是什么?