我正在尝试将 python 程序移植到 c#。这是应该是一个演练但目前正在折磨我的行:
hash = hashlib.md5(inputstring).digest()
在 c# 中生成类似的 MD5 哈希之后,创建一个与原始 python 程序类似的哈希字符串是绝对重要的,否则我的整个应用程序将失败。
我的困惑在于在 c# 中转换为字符串时使用哪种编码,即
?Encoding enc = new ?Encoding();
string Hash =enc.GetString(HashBytes); //HashBytes is my generated hash
因为我在使用 Encoding.Default 时无法创建两个相似的哈希值,即
string Hash = Encoding.Default.GetString(HashBytes);
所以我想知道 python 的默认 hash.digest() 编码会有所帮助
编辑
好吧,也许更多的代码会更多地表达我的问题。在python程序中计算哈希后,会进行一些计算,即
hash = hashlib.md5(inputstring).digest()
for i in range(0,6):
value += ord(hash[i])
return value
现在你能明白为什么两个不同的 Hash 字符串会有问题了吗?运行 python 程序时出现的一些字符被替换为“?” 在 C# 中。