• 获取对象的Hash值


    package com.shzd.common.utils.utils;
    
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.ObjectOutputStream;
    import java.math.BigInteger;
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    
    /**
     * MD5工具类
     */
    public class MD5Utils {
    
    	public static String md5(Object obj){
    
    		byte[] dataBytes = getObjBytes(obj);
    		//定义一个字节数组
    		byte[] secretBytes = null;
    		try {
    			// 生成一个MD5加密计算摘要
    			MessageDigest md = MessageDigest.getInstance("MD5");
    			//对字符串进行加密
    			md.update(dataBytes);
    			//获得加密后的数据
    			secretBytes = md.digest();
    		} catch (NoSuchAlgorithmException e) {
    			throw new RuntimeException("没有md5这个算法!");
    		}
    		//将加密后的数据转换为16进制数字
    		String md5code = new BigInteger(1, secretBytes).toString(16);// 16进制数字
    		// 如果生成数字未满32位,需要前面补0
    		for (int i = 0; i < 32 - md5code.length(); i++) {
    			md5code = "0" + md5code;
    		}
    		return md5code;
    	}
    
    	private static byte[] getObjBytes(Object obj) {
    		ByteArrayOutputStream bos = new ByteArrayOutputStream();
    		ObjectOutputStream oos = null;
    		byte[] dataBytes = null;
    		try {
    			oos = new ObjectOutputStream(bos);
    			oos.writeObject(obj);
    			oos.flush();
    			dataBytes = bos.toByteArray();
    			oos.close();
    			bos.close();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		return dataBytes;
    	}
    
    	public static void main(String[] args) {
    		System.out.println("123="+md5("123"));
    	}
    }
    
  • 相关阅读:
    MySQL_创建数据库和表
    MySQL注释的3中方法
    子查询概念和分类
    弱网测试如何进行
    Fiddler_ 移动端抓包配置IOS&Android,Fiddler获取APP端的流量
    Fiddler_HTTPS 如何抓包和浏览器设置
    Fiddler_弱网测试
    Three.js 游戏操作案例
    flex 教程
    JS知识
  • 原文地址:https://www.cnblogs.com/mengjianzhou/p/11578666.html
Copyright © 2020-2023  润新知