首页 > 代码库 > 摘要算法测试MD5或SHA-1
摘要算法测试MD5或SHA-1
package com.fenghao.other; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** * * <P>摘要工具类使用MD5或SHA-1摘要算法</P> * @ClassName: MessageDigestUtils * @author 冯浩 2016年11月29日 下午3:15:54 * @see TODO */ public class MessageDigestUtils { public String digestMessage(String context,String hashType) throws NoSuchAlgorithmException{ MessageDigest in = MessageDigest.getInstance(hashType); byte[] digest = in.digest(context.getBytes()); return bytes2Hex(digest); } private String bytes2Hex(byte[] bytes){ StringBuilder str=new StringBuilder(); for (int i = 0; i < bytes.length; i++) { byte b=bytes[i]; boolean negative=false;//判断正负 if(b<0) negative=true; int line = Math.abs(b);//取绝对值 if(negative) line=line|0x80; //0x代表十六进制 8*16=128 二进制表示:10000000 负负得正 最高位的负号变成数值进行计算 String tmp = Integer.toHexString(line&0xFF); if(tmp.length()==1){ str.append("0"); } str.append(tmp.toLowerCase()); } return str.toString(); } /** * * <p>方法测试</p> * <p>Description: TODO</p> * @author 冯浩 2016年11月29日 下午3:41:13 */ @org.junit.Test public void Test(){ int a=3;//3 int b=-3;//3 int c=128;//128 int d=-128;//128 int e=129;//129 int f=-129;//129 int i = Math.abs(-199);//取绝对值 int n=d|0x80; System.out.println("\n n is "+n); } public static void main(String[] args) { MessageDigestUtils message=new MessageDigestUtils(); String context="fenghao"; try { String result = message.digestMessage(context, "MD5"); System.out.println("\n result is "+result); } catch (NoSuchAlgorithmException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
使用MD5摘要后对字节数组进行16进制编码!
摘要算法测试MD5或SHA-1
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。