Java 什么是PHP';s md5(str,true)?
我正在用以下行计算PHP中的MD5(获取更多信息): 我正在使用以下Java代码:Java 什么是PHP';s md5(str,true)?,java,android,md5,Java,Android,Md5,我正在用以下行计算PHP中的MD5(获取更多信息): 我正在使用以下Java代码: byte[] bytesOfMessage = password.getBytes("UTF-8"); MessageDigest md = MessageDigest.getInstance("MD5"); byte[] thedigest = md.digest(bytesOfMessage); 上述代码返回的输出与PHP代码返回的输出不同 如何为Android/Java解决这个问题?生成完全相同的MD5,
byte[] bytesOfMessage = password.getBytes("UTF-8");
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] thedigest = md.digest(bytesOfMessage);
上述代码返回的输出与PHP代码返回的输出不同
如何为Android/Java解决这个问题?生成完全相同的MD5,原始输出不是散列字符串?是的。我也有同样的问题。我找到了正确的方法: 这相当于PHP的
md5(密码,true)
:
与PHP的md5(密码,false)
等效:
我也有同样的问题,这是我的Java程序代码:
public static String encryptPassword(String password) {
String hash = null;
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(password.getBytes("UTF-8"));
byte[] raw = md.digest();
hash = (new BASE64Encoder()).encode(raw);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return hash;
}
这是我的php代码:
<?php
$str = 'encodeIt';
$toutf8 = utf8_encode($str);
$var = md5($str,true);
echo base64_encode($var);
?>
它们总是返回相同的散列。检查这个答案,可能是Nawaz的重复,它返回散列字符串,我需要原始输出。@RahimRahimov:也许在变量名中不使用
加密的
?@zaph。固定的。“现在可以吗?”辛格:如果这个或任何答案都解决了你的问题,请点击检查标记来考虑。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做。hexArray[]从何而来?最终受保护的静态字符[]hexArray=“0123456789ABCDEF”。ToCharray();
public static String md5(String text) {
try {
MessageDigest digester = MessageDigest.getInstance("MD5");
digester.update(text.getBytes());
byte[] md5Bytes = digester.digest();
String md5Text = null;
md5Text = bytesToHex(md5Bytes);
return md5Text;
}
catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return "";
}
public static String bytesToHex(byte[] bytes) {
char[] hexChars = new char[bytes.length * 2];
for (int j = 0; j < bytes.length; j++) {
int v = bytes[j] & 0xFF;
hexChars[j * 2] = hexArray[v >>> 4];
hexChars[j * 2 + 1] = hexArray[v & 0x0F];
}
return new String(hexChars);
}
public String convertToBase64(byte[] bytes) {
try {
String base64 = Base64.encodeToString(bytes, Base64.DEFAULT);
return base64;
}
catch (Exception e) {
}
return "";
}
public static String encryptPassword(String password) {
String hash = null;
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(password.getBytes("UTF-8"));
byte[] raw = md.digest();
hash = (new BASE64Encoder()).encode(raw);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return hash;
}
<?php
$str = 'encodeIt';
$toutf8 = utf8_encode($str);
$var = md5($str,true);
echo base64_encode($var);
?>