私のAndroidアプリケーションでは、データアクセスのセキュリティのためにMD5ハッシュキーを使用しています。電子メール+時間+「接尾辞」文字列を使用してキーを生成しています。うまくいっています。+
しかし、問題は、のようなプラス()記号が少なくとも1つある電子メールアドレスを使用しているa+b@gmail.com
場合、サーバーが「不正なアクセスキー」メッセージを返すことです。マイナス(-
)、アンダースコア(_
)などの記号が付いたメールアドレスでは機能しますが、プラス(+
)記号が付いたメールアドレスでは機能しません。私はこの方法でMD5ハッシュキーを生成しています:
public static String MD5_Hash(String s) {
try {
// Create MD5 Hash
MessageDigest digest = java.security.MessageDigest
.getInstance("MD5");
digest.update(s.getBytes());
byte messageDigest[] = digest.digest();
// Create Hex String
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < messageDigest.length; i++) {
String h = Integer.toHexString(0xFF & messageDigest[i]);
while (h.length() < 2)
h = "0" + h;
hexString.append(h);
}
return hexString.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return "";
}