高分求助DES加密算法补位问题
根据DES算法,DES加密采用每组8位的方式进行加密。
不足8位时需进行补位。
利用Wincrypt.h 提供的函数进行加密,如果明文不足8位或不是8的倍数是,
返回的密文仍然是8的倍数。再利用Wincrypt.h 提供的函数进行解密是正确的。
但是无法用其他加密函数进行解密。
Wincrypt进行加密时填充的数据是什么?
怎样才能用其他函数进行解密?
[解决办法]
有没有具体的代码?
不足8字节需要补的。
[解决办法]
很多自称实现了des/3des算法,但都只能自己解密自己加密的算法,为什么? 实现过程中有差别。
http://download.csdn.net/detail/hzyong_c/3072977这里有个des加解密算法,几年前我根据文档写的。
[解决办法]
因为补位的规则没有唯一限定,而且加密时分块的大小也是不清楚的,所以解密时去补位只能是自己做的加密自己解。解密常用的几个补位方法有几种,通常最后一位写的都是补的位数,前面几位要么是随机数,要么是0,要么和最后一位一样。
[解决办法]
很久没做des的东西了,主流的des解密应该都是没有什么问题的,因为补位的方法基本都是用最后一位来标记填充长度的。