Java jdbc+servlet+jsp MD5加密

Java jdbc+servlet+jsp MD5加密

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

开发工具与关键技术:servlet+jsp+jdbc

作者:李奕庚

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

package com.gx.util;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Tool {
	/*public static void main(String []args){
		  
		  
		   String test="123456a";
		  
		   //创建一个MD5Tool类
		  // MD5Tool myMd5 =new MD5Tool();
		  
		   String result=MD5Tool.MD5Encrypt(test);
		  
		   System.out.println (test+" 加密後的结果是:"+result);
		  
		}*/


		//该方法将你输入的字符串,通过md5加密,返回一个加密後的字符串
		public static String MD5Encrypt(String inStr) {  
		  
		   MessageDigest md = null;  
		   String outStr = null;  
		   try {   

		    md = MessageDigest.getInstance("MD5");        //可以选中其他的算法如SHA   
		    byte[] digest = md.digest(inStr.getBytes());       
		    //返回的是byet[],要转化为String存储比较方便  
		    outStr = bytetoString(digest);  
		   } 
		   catch (NoSuchAlgorithmException nsae) {   
		    nsae.printStackTrace();  
		   }  
		   return outStr; 
		} 

		public static String bytetoString(byte[] digest) {  

		   String str = "";  
		   String tempStr = "";  
		   for (int i = 1; i < digest.length; i++) {   
		    tempStr = (Integer.toHexString(digest[i] & 0xff));   
		    if (tempStr.length() == 1) {    
		     str = str + "0" + tempStr;   
		    } 
		    else {    
		     str = str + tempStr;   
		    }  
		   }  
		   return str.toLowerCase(); 

		}
		}

加密的使用

md5也是一种哈希算法吧。当一个很大的文件,比如ubuntu的iso,4个G,如果下载下来后,想知道文件对不对,有没有损坏,那么这个时候怎么办呢。用一种hash方法,计算这个4G文件的hash值,值是一串128位长的字符串,这个串在你下载这个iso的时候,一般会在相关地方挂着,你能看到的。也就是说,每次他们发布一个iso的时候,会放一个md5值,再放一个iso文件。当你下载下来这个iso文件后,你担心文件有损坏或者不一样,那么你可以按照md5算法自己对你下载的iso计算出一个串,如果你计算的串和官方挂出来的字符串一致,那说明有非常非常非常非常高的可能:这个下载下来的iso没问题,非常非常非常非常非常低的概率:这个iso有问题。
因为md5计算后生成的是一个128位长的串,在很大程度上避免了两个不相同的文件得到相同的哈希值,因此现在用的很广泛。
而这种hash算法的计算过程就是不停的移位不停的与或非的,计算起来很快。当然,大部分哈希都这样。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值