使用Java自带API进行MD5加密

 转载自


因为毕业设计的缘故,研究了一下网站的加密,做了一个MD5加密,也算是一个小小的加密、但是在Web程序上不论是在客户端还是服务端加密理论上都是不安全的,我们要使用HTTPS这个协议来保证通信的全加密再加上MD5加密才比较安全、MD5是一个不可逆的加密算法、所以一般来说只要加密就好、不需要解密程序.数据库中存入的也是加密过得密码就行了、下面直接上代码

[java]  view plain copy
  1. public  class  EncryptionByMD5 {  
  2.   
  3.     public static String getMD5(byte[] source) {  
  4.         String s = null;  
  5.         char hexDigits[] = { '0''1''2''3''4''5''6''7''8''9',  
  6.                 'a''b''c''d''e''f' };// 用来将字节转换成16进制表示的字符  
  7.         try {  
  8.             java.security.MessageDigest md = java.security.MessageDigest  
  9.                     .getInstance("MD5");  
  10.             md.update(source);  
  11.             byte tmp[] = md.digest();// MD5 的计算结果是一个 128 位的长整数,  
  12.             // 用字节表示就是 16 个字节  
  13.             char str[] = new char[16 * 2];// 每个字节用 16 进制表示的话,使用两个字符, 所以表示成 16  
  14.             // 进制需要 32 个字符  
  15.             int k = 0;// 表示转换结果中对应的字符位置  
  16.             for (int i = 0; i < 16; i++) {// 从第一个字节开始,对 MD5 的每一个字节// 转换成 16  
  17.                 // 进制字符的转换  
  18.                 byte byte0 = tmp[i];// 取第 i 个字节  
  19.                 str[k++] = hexDigits[byte0 >>> 4 & 0xf];// 取字节中高 4 位的数字转换,// >>>  
  20.                 // 为逻辑右移,将符号位一起右移  
  21.                 str[k++] = hexDigits[byte0 & 0xf];// 取字节中低 4 位的数字转换  
  22.   
  23.             }  
  24.             s = new String(str);// 换后的结果转换为字符串  
  25.   
  26.         } catch (NoSuchAlgorithmException e) {  
  27.             // TODO Auto-generated catch block  
  28.             e.printStackTrace();  
  29.         }  
  30.         return s;  
  31.     }  
  32.       
  33.     public static void main(String[] args){  
  34.       
  35.         String test=EncryptionByMD5.getMD5("test".getBytes());  
  36.         System.out.println(test);  
  37.   
  38.     }  
  39. }  
输出结果为:098f6bcd4621d373cade4e832627b4f6
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值