Index: topia-security/src/java/org/codelutin/topia/security/TopiaSecurityUtil.java diff -u topia-security/src/java/org/codelutin/topia/security/TopiaSecurityUtil.java:1.3 topia-security/src/java/org/codelutin/topia/security/TopiaSecurityUtil.java:1.4 --- topia-security/src/java/org/codelutin/topia/security/TopiaSecurityUtil.java:1.3 Thu Sep 14 13:41:59 2006 +++ topia-security/src/java/org/codelutin/topia/security/TopiaSecurityUtil.java Thu Sep 14 17:32:45 2006 @@ -24,10 +24,10 @@ * Created: 15 févr. 2006 * * @author Arnaud Thimel -* @version $Revision: 1.3 $ +* @version $Revision: 1.4 $ * -* Mise a jour: $Date: 2006/09/14 13:41:59 $ -* par : $Author: ruchaud $ +* Mise a jour: $Date: 2006/09/14 17:32:45 $ +* par : $Author: bpoussin $ */ package org.codelutin.topia.security; @@ -36,12 +36,17 @@ import java.security.NoSuchAlgorithmException; import java.util.StringTokenizer; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.codelutin.topia.security.jaas.TopiaLoginModule; import sun.misc.BASE64Encoder; public class TopiaSecurityUtil { + /** to use log facility, just put in your code: log.info(\"...\"); */ + static private Log log = LogFactory.getLog(TopiaSecurityUtil.class); + public static final int LOAD = 0x1; public static final String LOAD_TEXT = "LOAD"; public static final int CREATE = 0x2; @@ -55,13 +60,18 @@ public static final String TOPIA_LOGIN_MODULE = TopiaLoginModule.class.getName(); + public static String hash(String msg) { + return digestSHAHex(msg); + } + + /** * Applique un algorithme de hashage sur la chaine de caratère passée en * paramètre * @param msg la chaine de caratère sur laquelle on veut opérer le hashage * @return La chaine de caractère une fois l'algorithme appliqué */ - public static String hash(String msg) { + public static String digestSHABase64(String msg) { if (msg == null) { return null; } @@ -76,6 +86,36 @@ return msg; } } + + /** + * Fait le checksum SHA de la chaine de caractere le resultat est retourne + * sous forme de chaine Hexadecimal. + */ + static public String digestSHAHex(String ch){ + if(ch == null){ + return null; + } + try{ + MessageDigest md = MessageDigest.getInstance("SHA"); + md.update(ch.getBytes()); + byte[] digest = md.digest(); + + StringBuffer result = new StringBuffer(); + for (int i=0; i < digest.length; i++) { + String hex = Integer.toHexString(0xFF & digest[i]); + if (hex.length() == 1) { + result.append("0" + hex); + } else { + result.append(hex); + } + } + + return result.toString(); + }catch(NoSuchAlgorithmException eee){ + log.warn("Impossible de trouve l'algo SHA", eee); + return ch; + } + } /** * Transforme actions en un entier.