private String getString(byte[] bytes)
{
StringBuffer sb = new StringBuffer();
for (int i = 0; i < bytes.length; i++)
{
byte b = bytes[i];
sb.append(0xFF & b);
}
return sb.toString();
}
public String encrypt(String source)
{
try
{
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] bytes = md.digest(source.getBytes());
return getString(bytes);
}
catch (Exception e)
{
e.printStackTrace(); }
return null;
}
Если мой текст = «тест» Первая часть ToString()) производит значение «Шифрование $ 2 @ 6966b26b» И вторая часть, то получает, что и производит значение «91431072057033211115202222781313839180246» Но почему md5 a число, а не 31f521a06d5060d1f38159c74a1f7cf2 или что-то подобное?Что это за хеширование/шифрование?
Это говорит буквально MD5 в коде ... –
Числовое представление, потому что вы получаете количество байт обратно. Если вы хотите, чтобы это было представлено в шестнадцатеричном формате, например 31f521a06d5060d1f38159c74a1f7cf2, вам нужно преобразовать ваши байты в 16-базовые. поэтому значение между 00-ff. –