среда, 6 марта 2013 г.

Хеш строки

/**
 * Получить хеш строки entity по алгоритму HmacSHA256 с шумом salt.
 * @param entity Строка для хеширования
 * @param salt строка шума (salt)
 * @return Строка шестнадцатеричного хеша
 * @throws Exception
 */
public static String getHmac(String entity, String salt) throws Exception {
 Mac mac = Mac.getInstance("HmacSHA256");
 mac.init(new SecretKeySpec(salt.getBytes(), "HmacSHA1"));
 byte[] bs = mac.doFinal(entity.getBytes());
 return bin2hex(bs);
}

// Перевод байтов в шестнадцатиричную строку
static String bin2hex(byte[] data) {
 return String.format("%0" + (data.length * 2) + 'x', new BigInteger(1, data));
}

Комментариев нет:

Отправить комментарий