Mega Code Archive

 
Categories / Java / Development Class
 

Hash string

//    Openbravo POS is a point of sales application designed for touch screens. //    Copyright (C) 2007-2009 Openbravo, S.L. //    http://www.openbravo.com/product/pos // //    This file is part of Openbravo POS. // //    Openbravo POS is free software: you can redistribute it and/or modify //    it under the terms of the GNU General Public License as published by //    the Free Software Foundation, either version 3 of the License, or //    (at your option) any later version. // //    Openbravo POS is distributed in the hope that it will be useful, //    but WITHOUT ANY WARRANTY; without even the implied warranty of //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the //    GNU General Public License for more details. // //    You should have received a copy of the GNU General Public License //    along with Openbravo POS.  If not, see <http://www.gnu.org/licenses/>. //package com.openbravo.pos.pda.util; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /**  *   * @author jaroslawwozniak  */ public class StringUtils {   private static final char[] hexchars = { '0', '1', '2', '3', '4', '5', '6',       '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };   public static String byte2hex(byte[] binput) {     StringBuffer sb = new StringBuffer(binput.length * 2);     for (int i = 0; i < binput.length; i++) {       int high = ((binput[i] & 0xF0) >> 4);       int low = (binput[i] & 0x0F);       sb.append(hexchars[high]);       sb.append(hexchars[low]);     }     return sb.toString();   }   public static byte[] hex2byte(String sinput) {     int length = sinput.length();     if ((length & 0x01) != 0) {       throw new IllegalArgumentException("odd number of characters.");     }     byte[] out = new byte[length >> 1];     // two characters form the hex value.     for (int i = 0, j = 0; j < length; i++) {       int f = Character.digit(sinput.charAt(j++), 16) << 4;       f = f | Character.digit(sinput.charAt(j++), 16);       out[i] = (byte) (f & 0xFF);     }     return out;   }   public static String hashString(String sPassword) {     if (sPassword == null || sPassword.equals("")) {       return "empty:";     } else {       try {         MessageDigest md = MessageDigest.getInstance("SHA-1");         md.update(sPassword.getBytes("UTF-8"));         byte[] res = md.digest();         return "sha1:" + byte2hex(res);       } catch (NoSuchAlgorithmException e) {         return "plain:" + sPassword;       } catch (UnsupportedEncodingException e) {         return "plain:" + sPassword;       }     }   } }