私はmd5を送信しているところにJavaコードを持っていて、相手側で受信するソケットを持っています。私は入力としてパスワードを受け取り、自分のmd5を作成して、ソケットを介して認証されたmd5で確認します。MD5文字列の比較
両方のmd5文字列のバイトパターンは同じですが、両方のmd5パターンで同等性テストを実行すると、String.equals()はfalseを返します。どのようにこれを可能にすることができますか?誰かが間違っているかもしれないという考えを持っているなら、助けてください?
私はmd5を送信しているところにJavaコードを持っていて、相手側で受信するソケットを持っています。私は入力としてパスワードを受け取り、自分のmd5を作成して、ソケットを介して認証されたmd5で確認します。MD5文字列の比較
両方のmd5文字列のバイトパターンは同じですが、両方のmd5パターンで同等性テストを実行すると、String.equals()はfalseを返します。どのようにこれを可能にすることができますか?誰かが間違っているかもしれないという考えを持っているなら、助けてください?
MD5はbyte[]
です。その表現は、通常はの16進文字列です。見て物事:
new String(bytes)
を使用していないことを確認してくださいを持つ必要がありますしかし、あなたは表現を比較するべきではありません。あなたはバイトを比較する必要があります:Arrays.equals(ar1, ar2)
いくつかのコードを表示してください。 – chzbrgla
"両方のmd5文字列が同じバイトパターンを持つ"という意味を明確にすることはできますか?これをどうやって決めますか? –
本当に 'String.equals()'を使っていますか?例えば 'char []。equals()'を呼び出すのではないのですか? –