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
问题解决。