/* * Copyright (c) 2014 The APN-PROXY Project * * The APN-PROXY Project licenses this file to you under the Apache License, * version 2.0 (the "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ package com.xx_dev.apn.proxy.utils; import org.apache.log4j.Logger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** * @author xmx * @version $Id: com.xx_dev.apn.proxy.utils.SHA256Util 14-1-8 16:13 (xmx) Exp $ */ public class SHA256Util { private static final Logger logger = Logger.getLogger(SHA256Util.class); /** * @param strSrc * @return */ public static String hash(String strSrc) { MessageDigest md = null; String strDes = null; byte[] bt = strSrc.getBytes(); try { md = MessageDigest.getInstance("SHA-256"); md.update(bt); strDes = bytes2Hex(md.digest()); // to HexString } catch (NoSuchAlgorithmException e) { logger.error("Invalid algorithm."); return null; } return strDes; } /** * Bytes to Hex * * @param bts * @return */ private static String bytes2Hex(byte[] bts) { StringBuffer buf = new StringBuffer(); String tmp = null; for (int i = 0; i < bts.length; i++) { tmp = (Integer.toHexString(bts[i] & 0xFF)); if (tmp.length() == 1) { buf.append("0"); } buf.append(tmp); } return buf.toString(); } }