.net 1.1和2.0中的MD5编码差异

开发者在使用MD5加密密码并尝试在不同.NET版本间兼容时遇到问题。加密后的密码在.NET 1.1和2.0平台上不一致,导致部分用户登录失败。问题根源在于Unicode编码和字节转换过程中的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大家好,

最近,我正在开发扩展应用程序(.net 2.0)以生成密码,使用MD5加密密码,然后将其插入数据库中,以便在网站(.net 1.1平台)中进行客户端登录。

开发了扩展程序后,我的一些用户报告说某些密码无法在网站上使用。

当我检查编码加密时,发现了一些问题。

这是我加密方法的一部分。

坍方

公共字符串cryptoStr(string strPassword)

{

MD5 md5 =新的MD5CryptoServiceProvider();

byte [] pwd = Encoding.Unicode.GetBytes(strPassword);

字符串ePwd = Encoding.Unicode.GetString(md5.ComputeHash(pwd));

返回ePwd;

}

如果只是在调试模式下运行,请输入“密码”,在Platform .net 1.1和2.0中,字符串值“ ePwd”可能不会有所不同

再次使用“ ePwd”转换为Byte [],您发现“ pwd”与“转换字节值”不同。

这是VS 2003和VS 2008的项目。

附加的文件
文件类型:zip Archive.zip (92.6 KB,81视图)

From: https://bytes.com/topic/c-sharp/insights/906712-md5-encoding-differ-net-1-1-2-0-a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值