Java md5,PHP方式

我已经为此工作了几个小时,但我无法使其正常工作。

基本上,我正在为Java中的REST服务器开发Java REST客户端。客户端和服务器都必须计算字符串的md5,服务器将比较它们的身份验证(kinda)。

在服务器上,PHP代码为:

md5("getTokenapi_keybf8ddfs845jhre980543jhsjfro93fd8capi_ver1tokeniud9ER£jdfff");

会产生:

4d7b2e42c3dfd11de3e77b9fe2211b87

真好!

这是客户端的代码:

import java.security.*;

....

String s = "getTokenapi_keybf8ddfs845jhre980543jhsjfro93fd8capi_ver1tokeniud9ER£jdfff";

byte[] bytesOfMessage = s.getBytes("UTF-8");

MessageDigest md = MessageDigest.getInstance("MD5");

byte[] thedigest = md.digest(bytesOfMessage);

System.out.println("String2: " + thedigest);

System.out.println("String3: " + new String(thedigest));

产生:

String2: [B@42e816

String3: M{.B�����{��!�

请问我怎样才能像Java一样用Java来计算md5和?

谢谢,丹

回答:

试试看:

public static String md5(String input) throws NoSuchAlgorithmException {

String result = input;

if(input != null) {

MessageDigest md = MessageDigest.getInstance("MD5"); //or "SHA-1"

md.update(input.getBytes());

BigInteger hash = new BigInteger(1, md.digest());

result = hash.toString(16);

while(result.length() < 32) { //40 for SHA-1

result = "0" + result;

}

}

return result;

}

来自http://web.archive.org/web/20140209230440/http://www.sergiy.ca/how-to-make-

java-md5-and-sha-1-hashes-compatible-with-

php-的代码or-mysql

/

以上是 Java md5,PHP方式 的全部内容, 来源链接: utcz.com/qa/408458.html

回到顶部