1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.promotego.logic;
20
21 import java.security.MessageDigest;
22 import java.security.NoSuchAlgorithmException;
23
24 import org.apache.commons.codec.binary.Base64;
25 import org.promotego.exceptions.NestedException;
26 import org.promotego.interfaces.PasswordHashTool;
27
28 public class Sha1Hash implements PasswordHashTool
29 {
30 public boolean match(String cryptedPassword, String password)
31 {
32 return hash(password).equals(cryptedPassword);
33 }
34
35 public String hash(String password)
36 {
37 MessageDigest sha1Digest;
38
39 try
40 {
41 sha1Digest = MessageDigest.getInstance("SHA-1");
42 }
43 catch (NoSuchAlgorithmException e)
44 {
45
46 throw NestedException.wrap(e);
47 }
48
49 sha1Digest.update(password.getBytes());
50
51 StringBuilder retval = new StringBuilder("sha1:");
52 retval.append(new String(Base64.encodeBase64(sha1Digest.digest())));
53 return retval.toString();
54 }
55 }