Как преобразовать hexString в фактическую строку относительно md5, sha-1 и sha-256 - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть класс, преобразующий строку в hexString в соответствии со значением, указанным для md5, sha1 sha 256.

Как преобразовать hexString в строку в соответствии с этим алгоритмом безопасности.

MD5 Hash: 06c219e5bc8378f3a8a3f83b4b7e4649 SHA-1 Hash: e9fe51f94eadabf54dbf2fbbd57188b9abee436e SHA-256 хеширования: 652c7dc687d98c9889304ed2e408c74b611e86a40caa51c4b43f1dd5913c5cd0 Фактическая строка:. MySecret

1006 * Вот мой фрагмент кода, приведенный ниже 1008 *

1 Ответ

1 голос
/ 02 апреля 2019

Получив байтовый массив из шестнадцатеричной строки, используя hexStringtoByteArray, вы можете создать строку, используя new String(bytes, "UTF-8"), где байты - это байтовый массив из вашего метода.Указывая UTF-8 при создании строки, вы получаете символы, отличные от шестнадцатеричных.

Поэтому новый метод будет следующим:

public String hexStringtoByteArray(String str) { 
    byte[] bytes = new byte[str.length() / 2]; 
    for (int i = 0; i < bytes.length; i++) { 
        bytes[i] = (byte) Integer.parseInt(str.substring(2 * i, 2 * i + 2), 16); 
    } 
    return new String(bytes, "UTF-8"); 
}
...