Преобразуйте хеш в строку шестнадцатеричного символа

Этот вопросом является о daemonizing произвольная программа (не определенный для Java), таким образом, некоторые ответы могут относиться к Вашему случаю:

10
задан russau 17 September 2009 в 01:50
поделиться

1 ответ

Чтобы получить хэш, используйте System.Security.Cryptography.SHA1Managed класс .

РЕДАКТИРОВАТЬ : Вот так:

byte[] hashBytes = new SHA1Managed().ComputeHash(Encoding.UTF8.GetBytes(str));

Чтобы преобразуйте хэш в шестнадцатеричную строку, используйте следующий код:

BitConverter.ToString(hashBytes).Replace("-", "");

Если вы хотите более быструю реализацию, используйте следующую функцию:

private static char ToHexDigit(int i) {
    if (i < 10) 
        return (char)(i + '0');
    return (char)(i - 10 + 'A');
}
public static string ToHexString(byte[] bytes) {
    var chars = new char[bytes.Length * 2 + 2];

    chars[0] = '0';
    chars[1] = 'x';

    for (int i = 0; i < bytes.Length; i++) {
        chars[2 * i + 2] = ToHexDigit(bytes[i] / 16);
        chars[2 * i + 3] = ToHexDigit(bytes[i] % 16);
    }

    return new string(chars);
}
15
ответ дан 3 December 2019 в 22:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: