Here you can find the source of sha1(String s)
Parameter | Description |
---|---|
password | a parameter |
public static String sha1(String s)
//package com.java2s; /*/*ww w. ja v a 2 s . co m*/ * Created on 5-mar-03 * * * ==================================================================== * * The WYMIWYG Software License, Version 1.0 * * Copyright (c) 2002-2003 WYMIWYG * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, if * any, must include the following acknowlegement: * "This product includes software developed by WYMIWYG." * Alternately, this acknowlegement may appear in the software itself, * if and wherever such third-party acknowlegements normally appear. * * 4. The name "WYMIWYG" or "WYMIWYG.org" must not be used to endorse * or promote products derived from this software without prior written * permission. For written permission, please contact wymiwyg@wymiwyg.org. * * 5. Products derived from this software may not be called * "WYMIWYG" nor may "WYMIWYG" appear in their names * without prior written permission of WYMIWYG. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL WYMIWYG OR ITS CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,SPECIAL, EXEMPLARY, * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of WYMIWYG. For more * information on WYMIWYG, please see http://www.WYMIWYG.org/. * * This licensed is based on The Apache Software License, Version 1.1, * see http://www.apache.org/. */ import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class Main { /** * @param password * @return */ public static String sha1(String s) { MessageDigest md = null; try { md = MessageDigest.getInstance("SHA1"); } catch (NoSuchAlgorithmException e) { throw new RuntimeException("sha1 not supported by plattform"); } try { byte[] result = md.digest(s.getBytes("UTF-8")); return bytes2HexString(result); } catch (UnsupportedEncodingException ex) { throw new RuntimeException("utf-8 not supported by plattform"); } } /** * Converts an array of bytes to a string of two digits hex-representations * * @param bytes * @return */ public static String bytes2HexString(byte[] bytes) { StringBuffer resultBuffer = new StringBuffer(); for (int i = 0; i < bytes.length; i++) { resultBuffer.append(byte2Hex(bytes[i])); } return resultBuffer.toString(); } /** * @param b * @return */ private static String byte2Hex(byte b) { int i = unsignedByteToInt(b); String hexChars = "0123456789abcdef"; byte low = (byte) (i % 16); byte high = (byte) (i / 16); return "" + hexChars.charAt(high) + hexChars.charAt(low); } private static int unsignedByteToInt(byte b) { return (int) b & 0xFF; } }