Я работал над этим несколько часов, но не могу заставить его работать.
В основном я разрабатываю клиент REST на Java для сервера REST на PHP. И клиент, и сервер должны вычислить md5 строки, и сервер будет сравнивать их для аутентификации (вроде).
На сервере 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 вычислять сумму md5 так же, как это делает PHP, пожалуйста?
Спасибо, Дэн