View Javadoc
1   /*
2    * Copyright (C) 2003-2008 eXo Platform SAS.
3    *
4    * This program is free software; you can redistribute it and/or
5    * modify it under the terms of the GNU Affero General Public License
6    * as published by the Free Software Foundation; either version 3
7    * of the License, or (at your option) any later version.
8    *
9    * This program is distributed in the hope that it will be useful,
10   * but WITHOUT ANY WARRANTY; without even the implied warranty of
11   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12   * GNU General Public License for more details.
13   *
14   * You should have received a copy of the GNU General Public License
15   * along with this program; if not, see<http://www.gnu.org/licenses/>.
16   */
17  package org.exoplatform.services.wcm.publication;
18  
19  /**
20   * This class is responsible to create a unique hashcode for a given message
21   *
22   * @author Benjamin Paillereau - benjamin.paillereau@exoplatform.com
23   * @version 1.0
24   */
25  public class MessageDigester {
26  
27      public static String getHash(String message) throws Exception {
28          java.security.MessageDigest msgDigest = java.security.MessageDigest.getInstance("MD5");
29          msgDigest.update(message.getBytes());
30          byte[] aMessageDigest = msgDigest.digest();
31          StringBuffer ticket = new StringBuffer();
32          ticket = new StringBuffer();
33          String tmp = null;
34          for (int i = 0; i < aMessageDigest.length; i++) {
35              tmp = Integer.toHexString(0xFF & aMessageDigest[i]);
36              if (tmp.length() == 2) {
37                  ticket.append(tmp);
38              } else {
39                  ticket.append("0");
40                  ticket.append(tmp);
41              }
42          }
43          return ticket.toString();
44      }
45  }