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 を使用すると、2 つの同様のハッシュを作成できないためです。
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
2 つの異なるハッシュ文字列が問題になる理由がわかりましたか? Python プログラムの実行時に表示される文字の一部は、'?' に置き換えられます。C#で。