diff -r d01685a7e07d -r 4c0408690ebf java/nekurak.net-lib/src/cz/frantovo/nekurak/util/Hash.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/util/Hash.java Thu Mar 04 14:09:21 2010 +0100 @@ -0,0 +1,47 @@ +package cz.frantovo.nekurak.util; + +import java.io.UnsupportedEncodingException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + +/** + * Pomocná třída pro počítání hashů. + * @author fiki + */ +public class Hash { + + private static String algoritmus = "SHA-1"; + private static String kodovani = "UTF-8"; + + private static String prevedNaHex(byte[] data) { + StringBuffer vysledek = new StringBuffer(); + for (int i = 0; i < data.length; i++) { + int pulBajt = (data[i] >>> 4) & 0x0F; + int dvePulky = 0; + do { + if ((0 <= pulBajt) && (pulBajt <= 9)) { + vysledek.append((char) ('0' + pulBajt)); + } else { + vysledek.append((char) ('a' + (pulBajt - 10))); + } + pulBajt = data[i] & 0x0F; + } while (dvePulky++ < 1); + } + return vysledek.toString(); + } + + /** + * @param text vstupní text + * @return hashovaný text v HEX tvaru + * @throws NoSuchAlgorithmException neexistující hashovací algoritmus + * @throws UnsupportedEncodingException nepodporované kódování znaků + */ + public static String hashuj(String text) throws NoSuchAlgorithmException, UnsupportedEncodingException { + MessageDigest md; + md = MessageDigest.getInstance(algoritmus); + byte[] hash = new byte[40]; + md.update(text.getBytes(kodovani), 0, text.length()); + hash = md.digest(); + return prevedNaHex(hash); + } +}