c#DES PaddingMode.None

问题描述 投票:0回答:1

我有C#中的下一个代码来加密解密

Crypto.BlockSize = 64;
Crypto.FeedbackSize = 8;
Crypto.Mode = CipherMode.ECB;
Crypto.Padding = PaddingMode.None;
Encryptor = Crypto.CreateEncryptor(Encoding.ASCII.GetBytes("12345678"), Encoding.UTF8.GetBytes("12345678"));
Decryptor = Crypto.CreateDecryptor(Encoding.ASCII.GetBytes("12345678"), Encoding.UTF8.GetBytes("12345678"));

我已经用其他语言编码了另一个加密器/解密器。

DES使用8字节填充。当要加密的文本为8字节或8的倍​​数时,两者都可以正常工作。

问题是当大小为12时。C#使用12个字节,因为它不需要任何填充...但是在另一个库中,我被迫使用8的倍数作为输入,因此我检查了所有内容0x00和0xFF,但最后字节得到不同的结果。

当没有填充且没有8的倍数时,c#在做什么?...从哪里获取剩余的丢失字节?

c# encryption padding des
1个回答
-1
投票

我过去12小时一直在寻找没有运气的解决方案。

我只是在这里问,我的脑海里闪现出直觉……现在已经证实了。。

直接不加密最后的字节。...

© www.soinside.com 2019 - 2024. All rights reserved.