2

Java コードには、C# コードと同じ機能が必要です。このコードは同じですか?

これは C# コードのコードです。

byte[] hashBytes;
UnicodeEncoding encoding = new UnicodeEncoding();
hashBytes = encoding.GetBytes(inputstr.Text.ToUpper().Trim());

SHA1 sha1 = new SHA1CryptoServiceProvider();

byte[] cryptPassword = sha1.ComputeHash(hashBytes);
System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
SHA1.Text = enc.GetString(cryptPassword);
outputstr.Text = Convert.ToBase64String(cryptPassword);

これは Java 移植コードですが、別の出力が得られます。

byte[] pwBytes = new String("password".toUpperCase().getBytes(), "UTF-16").getBytes();

MessageDigest md = null;
md = MessageDigest.getInstance("SHA-1");
byte[] sha1pw = md.digest(pwBytes);

final BASE64Encoder encoder = new BASE64Encoder();
String encodedPw = encoder.encode(sha1pw);

Java コードは、C# コードが outputstr.Text を計算するのと同じ方法で、encodedPw を計算する必要があります。

申し訳ありませんが、C# コードを実行して例を提供することはできません。Java コードは「パスワード」を としてハッシュしますoghZbO1T3U/eu3POLIIQweZ/gvQ=

4

1 に答える 1