1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/util/Hash.java Thu Mar 04 14:09:21 2010 +0100
1.3 @@ -0,0 +1,47 @@
1.4 +package cz.frantovo.nekurak.util;
1.5 +
1.6 +import java.io.UnsupportedEncodingException;
1.7 +import java.security.MessageDigest;
1.8 +import java.security.NoSuchAlgorithmException;
1.9 +
1.10 +/**
1.11 + * Pomocná třída pro počítání hashů.
1.12 + * @author fiki
1.13 + */
1.14 +public class Hash {
1.15 +
1.16 + private static String algoritmus = "SHA-1";
1.17 + private static String kodovani = "UTF-8";
1.18 +
1.19 + private static String prevedNaHex(byte[] data) {
1.20 + StringBuffer vysledek = new StringBuffer();
1.21 + for (int i = 0; i < data.length; i++) {
1.22 + int pulBajt = (data[i] >>> 4) & 0x0F;
1.23 + int dvePulky = 0;
1.24 + do {
1.25 + if ((0 <= pulBajt) && (pulBajt <= 9)) {
1.26 + vysledek.append((char) ('0' + pulBajt));
1.27 + } else {
1.28 + vysledek.append((char) ('a' + (pulBajt - 10)));
1.29 + }
1.30 + pulBajt = data[i] & 0x0F;
1.31 + } while (dvePulky++ < 1);
1.32 + }
1.33 + return vysledek.toString();
1.34 + }
1.35 +
1.36 + /**
1.37 + * @param text vstupní text
1.38 + * @return hashovaný text v HEX tvaru
1.39 + * @throws NoSuchAlgorithmException neexistující hashovací algoritmus
1.40 + * @throws UnsupportedEncodingException nepodporované kódování znaků
1.41 + */
1.42 + public static String hashuj(String text) throws NoSuchAlgorithmException, UnsupportedEncodingException {
1.43 + MessageDigest md;
1.44 + md = MessageDigest.getInstance(algoritmus);
1.45 + byte[] hash = new byte[40];
1.46 + md.update(text.getBytes(kodovani), 0, text.length());
1.47 + hash = md.digest();
1.48 + return prevedNaHex(hash);
1.49 + }
1.50 +}