java与.NET同步的MD5加密算法(一)

package com.tecamo.servu.junittest;

import java.security.MessageDigest;

public class MD5Ecnrypt {          
    //将字符串加密成MD5,32位16进制字串,如"3031209"转成"e043a49740adde7aae4f34818c52528e"  
    public static String EncodeMD5Hex(String text) throws Exception {  
        MessageDigest md = MessageDigest.getInstance("MD5");  
        md.update(text.getBytes("US-ASCII"));  
        byte[] digest = md.digest();      
        StringBuffer md5 = new StringBuffer();  
        for (int i = 0; i < digest.length; i++) {  
            md5.append(Character.forDigit((digest[i] & 0xF0) >> 4, 16));  
            md5.append(Character.forDigit((digest[i] & 0xF), 16));  
        }  
        return md5.toString();  
    }  
    //将字符串加密成ASCII字串,如"3031209"转成"?C??@??z?O4??RR?"  
    public static String EncodeMD5ASCII(String text) throws Exception {  
        MessageDigest md = MessageDigest.getInstance("MD5");  
        md.update(text.getBytes("US-ASCII"));  
        byte[] digest = md.digest();          
        return new String(digest,"US-ASCII");          
    }  
    //将ASCII字串编码成16进制字串,如:“?C??@??z?O4??RR?“转成”3f433f3f403f3f7a3f4f343f3f52523f“  
    //参数text  
    //返回结果16进制字符串  
    public static String DecodeMD5Hex(String text) throws Exception {          
        byte[] digest = text.getBytes();          
        StringBuffer md5 = new StringBuffer();  
        for (int i = 0; i < digest.length; i++) {  
            md5.append(Character.forDigit((digest[i] & 0xF0) >> 4, 16));  
            md5.append(Character.forDigit((digest[i] & 0xF), 16));  
        }  
        return md5.toString();      
    }  
    //比较输入密码MD5加密后与数据库密码相等  
    //参数a:输入的密码  
    //参数b:数据库的ASCII字串  
    //返回结果:a进行md5加密后和b相等则为真,反之则为假  
    public static Boolean CheckPSW(String a,String b) throws Exception  
    {          
        String strone=EncodeMD5ASCII(a);              
        return strone.equals(b);  
    }  
}  


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值