Author: echatellier Date: 2010-09-28 09:54:30 +0200 (Tue, 28 Sep 2010) New Revision: 1921 Url: http://nuiton.org/repositories/revision/nuiton-utils/1921 Log: #899 : Add sha1 encode util method Modified: trunk/src/main/java/org/nuiton/util/StringUtil.java trunk/src/test/java/org/nuiton/util/StringUtilTest.java Modified: trunk/src/main/java/org/nuiton/util/StringUtil.java =================================================================== --- trunk/src/main/java/org/nuiton/util/StringUtil.java 2010-09-24 23:58:04 UTC (rev 1920) +++ trunk/src/main/java/org/nuiton/util/StringUtil.java 2010-09-28 07:54:30 UTC (rev 1921) @@ -38,6 +38,8 @@ import java.awt.Color; import java.lang.reflect.Field; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; import java.text.DateFormat; import java.text.MessageFormat; import java.text.ParseException; @@ -653,7 +655,7 @@ } /** - * Convert a String to MD5 + * Convert a String to MD5. * * @param toEncode string concerned * @return md5 corresponding @@ -679,4 +681,26 @@ } return hashString.toString(); } + + /** + * Convert a String to SHA1. + * + * @param toEncode string to encode + * @return sha1 corresponding + * @throws IllegalStateException if could not found algorithm SHA1 + */ + public static String encodeSHA1(String toEncode) { + String result = null; + + try { + MessageDigest sha1Md = MessageDigest.getInstance("SHA-1"); + + byte[] digest = sha1Md.digest(toEncode.getBytes()); + result = asHex(digest); + } catch (NoSuchAlgorithmException ex) { + throw new IllegalStateException("Can't find SHA-1 message digest algorithm", ex); + } + + return result; + } } Modified: trunk/src/test/java/org/nuiton/util/StringUtilTest.java =================================================================== --- trunk/src/test/java/org/nuiton/util/StringUtilTest.java 2010-09-24 23:58:04 UTC (rev 1920) +++ trunk/src/test/java/org/nuiton/util/StringUtilTest.java 2010-09-28 07:54:30 UTC (rev 1921) @@ -195,5 +195,17 @@ public void testEncodeMD5() throws Exception { assertEquals("9c4fddff843d03cefe44421acf22c6ec", StringUtil.encodeMD5("natcho")); } + + /** + * Test que le hash sha1 d'une chaine est celui attendu. + */ + @Test + public void testEncodeSHA1() { + assertEquals("36fde5ec018f636fdb246986ed2eaa2d64dc6b10", StringUtil.encodeSHA1("Test encodage sha1")); + assertEquals("639d6aeefd0e3c347e23408b0b47bdd7b928b78f", + StringUtil.encodeSHA1("Cela ressemblait aux gros ordinateurs que David avait pu voir dans des films de science fiction.")); + assertEquals("53776c1a117089016498c1162db30265baaac558", + StringUtil.encodeSHA1("Cela ressemblait aux gros ordinateurs que david avait pu voir dans des films de science fiction.")); + } } // StringUtilTest