MD5算法的VB6源码在XP和WIN7中得到的结果不一致,是CHR函数的问题。
CHR(CHARCODE)这个函数返回CHARCODE在ASCII表中对应的字符,有些特殊的字符编码在win7中CHR(CHARCODE)会表示成CHR(63),而不幸的是XP中表示成CHR(0),因此需要重写CHR函数如下:
Private Function XK_Chr(ByVal charcode As Long) As Variant
If charcode <> 63 And Chr(charcode) = 63 Then
XK_Chr = 0
Else
XK_Chr = Chr(charcode)
End If
End Function
问题解决。
本文探讨了MD5算法在不同操作系统(XP与Win7)下产生不一致结果的问题,特别是针对CHR函数处理特殊字符时的行为差异。通过重写CHR函数解决了这一问题。
4854

被折叠的 条评论
为什么被折叠?



