文字列を暗号化された形式に変換しているときに、左側に「00」がないというエラーに直面しました。
通常、一般的な md5 メソッドを使用しても、アプリのバグは見つかりません。
したがって、文字列「sandeep」を使用してアプリをテストしてください (左側に「00」があるため、使用しました)。
この問題は私の時間を台無しにし、最終的にリンクから次の解決策を見つけました。
「左側が 00 の md5 文字列でエラーが発生しました。つまり、文字列「sandeep」が実際の「00DCF16D903E5890AABA465B0B1BA51F」ではなく「 DCF16D903E5890AABA465B0B1BA51F」に変換されました。
最終的にこの方法にたどり着きました。これは私のアプリでうまく機能します。」
public static String md5(String inputString) {
try {
// Create MD5 Hash
MessageDigest msgDigest = java.security.MessageDigest.getInstance("MD5");
msgDigest.update(inputString.getBytes());
byte msgDigestBytes[] = msgDigest.digest();
// Create Hex String
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < msgDigestBytes.length; i++) {
String h = Integer.toHexString(0xFF & msgDigestBytes[i]);
while (h.length() < 2)
h = "0" + h;
hexString.append(h);
}
return hexString.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return "";
}
参照: http://www.coderexception.com/CbHuB1uHPWxXUQXi/converting-string-to-md5-gives-add-number-of-digits