如图,在网上找了很多方法,不是结果不一样就是解出来的是乱码
加密解密
你可以试试上面这个
- 1.我想网上大多数的DES算法做出来的都是正确的,也就是说给它适当的数据,出来的结果是一样的。
- 2.DES的明码、秘钥、密码都是以8个字节的倍数为单位的,其中秘钥的部分位是无效的(算法细节就不详细展开了),首先要了解8字节的倍数这一点、
- 3.在你给出的工具上,虽然没有说,但是它在明码和秘钥两个txt框中明显要的是8个十六进制的数。这个和通常的编程用的参数是不一样的。编程用到的一般是字节数组,以8字节为单位,或者字符串(对明码来说)你给的数据形式不一样,往往是导致结果不一致的最大的原因。
- 4.对多块(n个8字节)加密,DES有附加的一些算法,有几种包括CBC,ECB等。这些算法的目的是为了保证连续加密的时候同样的块可以计算出不同的值,使用的方法一般是先把本块的明码和上一次DES的某个中间值先进行运算,再加密。其中CBC是无运算(也就是说,连续块一样的,出来的结果也一样)。你的例子里看上去不涉及多个块,但是如果程序里有多个块,这个也要了解一下。
- 5.在4中,对于与第一块运算的值,也是一个初始值,一般叫“初始向量(IV)”IV设置的不一样也会影响最终结果的一致性。
- 基本上就这些了。另外为了保证你的测试工具的准确性,可以网上用多个工具进行计算,比较结果。只要明码和秘钥一样,DES出来的结果应该都是一样的。
des有变形的
1:一层加密;
2:一层解密;
3:N层单密钥加密;
4:N层单密钥解密;
5:N层多密钥加密;
6:N层多密钥解密;