JAVA-MD5加密函数

public void GetMD5(String str){
		try {
			MessageDigest  mdi = MessageDigest.getInstance("MD5");
			byte[] input = str.getBytes("UTF-8");
			byte[] hash = mdi.digest(input);
			String d = "";
			for (int i=0;i<hash.length;i++){
				int v = hash[i] & 0xFF;//作用应该是将字符串前面清零 因为转换为int 时 高位会补位 负数就会产生不一样的效果.
				if (v<16)  d+="0";
				System.out.println(" v :"+v);
				d+=Integer.toString(v,16).toLowerCase();
			}
			System.out.println(d);
		} catch (NoSuchAlgorithmException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
				
	}

MessageDigest类适用于创建封装了指纹算法的工厂,其静态方法getInstange返回某个算法对象的实例。上面的例子,在SHA1算法是同样可以使用的。里面的主要思路是

1 、调用update方法将信息提供给对象。

2、调用digest算法将信息补齐计算,然后程序会以字节数组的形式返回信息摘要(hash value)

3、得到的信息摘要要逐字符进行转换,先将补齐的效果去掉之后按照16进制将其转换为字符

4、最终得到结果。

以上内容是在学习了JAVA核心技术之后的成果。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值