使用DES加密算法,VB6.0与C#的密文不一致 使用DES加密算法在VB6.0与C#下的加密后,密文不一致。哪位大侠,能指点! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 例: 输入的密码为wuzhenll,密钥的16进制表示为77 75 7A 68 65 6E 6C 6C 任意改变这64位数据的奇偶校验位,可以得到16个不同的密码, 把8个奇偶检验位全取反后: w->v u->t z->{ h->i e->d n->o l->m 形成新密码:vt{idomm 表面上新密码和原密码迥然不同,但是由于他们仅在奇偶校验位上有区别,所以用这两个密码进行加密解密操作得到的结果是一样的. 笔者建议使用安全系数较高的多密钥加密解密方案. 此外用户输入的密码的长度不受限制,当输入的密码长度为0时,使用缺省64位密码;当输入的密码长度大于8字节时,输入密码的前8个字节为有效密码. 使用全00对全00加密,正确结果是。//DES ECB解密//KEY值为:00 00 00 00 00 00 00 00 //数据为:00 00 00 00 00 00 00 00 //解密过程为://--数据为:00 00 00 00 00 00 00 00 结果为:8C A6 4D E9 C1 B1 23 A7 //结果为:8C A6 4D E9 C1 B1 23 A7 //DES ECB加密//KEY值为:00 00 00 00 00 00 00 00 //数据为:00 00 00 00 00 00 00 00 //加密过程为://--数据为:00 00 00 00 00 00 00 00 结果为:8C A6 4D E9 C1 B1 23 A7 //结果为:8C A6 4D E9 C1 B1 23 A7 通常问题出在字符编码上。加密前需要将字符串变成字节数组,VB6 要么是直接的 Unicode 格式,要么用 StrConv() 转换成 DBCS 编码格式。而 C# 可以用各种 Encoder 进行编码转换。所以最好先都用字节数组进行加密,对比结果是否一致。然后调试对比一下字符串转字节数组是否一致。两个过程都一致了最终结果也就一致了。 楼主问题解决了吗,我这也需要vb6和c# des加密 请指点一下 leadtools传图问题 打包运行出错 372错误,请大家路过帮忙看看 关于使用winsock发送带附件的邮件的问题. 怎样用程序按print screen键,并保存其所截的图 如何用VB进入和操作路由器 知道 ascii 码怎样得到对应的字母呢? VBA判断艺术字和表格 运行程序时,怎样实现用鼠标拖动来改变控件的大小。 关于打印报表问题,来者一定给分!还望各位大虾多多指点(急用...........) VB6.0 GDI 保存JPG图片质量差问题 怎么向文本框中的内容插入回车? VB 向UTF8文件追加内容,并要求保持原文件的编码
//DES ECB解密
//KEY值为:00 00 00 00 00 00 00 00
//数据为:
00 00 00 00 00 00 00 00
//解密过程为:
//--数据为:00 00 00 00 00 00 00 00 结果为:8C A6 4D E9 C1 B1 23 A7
//结果为:
8C A6 4D E9 C1 B1 23 A7
//DES ECB加密
//KEY值为:00 00 00 00 00 00 00 00
//数据为:
00 00 00 00 00 00 00 00
//加密过程为:
//--数据为:00 00 00 00 00 00 00 00 结果为:8C A6 4D E9 C1 B1 23 A7
//结果为:
8C A6 4D E9 C1 B1 23 A7
VB6 要么是直接的 Unicode 格式,要么用 StrConv() 转换成 DBCS 编码格式。
而 C# 可以用各种 Encoder 进行编码转换。所以最好先都用字节数组进行加密,对比结果是否一致。
然后调试对比一下字符串转字节数组是否一致。
两个过程都一致了最终结果也就一致了。