MD5加密

通过对字符串进行一定操作转换成另外一串字符串,加盐处理:在字符串后添加字符串,该字符串可以是固定的,也可是随机的,随机的安全性更高

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
 
public class MD5Utils {
 
    /**
     * MD5加密 通过将盐值和密码进行加密,进行混淆
     * 登录的时候就通过密码和数据库中的盐值进行拼接 进行MD5加密后的结果是否相同
     * @param context
     */
    public static String encrypByMd5(String context) {
    try {  
        // 获取一个MD5消息摘要实例
        MessageDigest md = MessageDigest.getInstance("MD5");
        
        // 更新消息摘要,将输入的文本内容转换为字节数组并进行处理
        md.update(context.getBytes());
        
        // 计算消息摘要,得到MD5散列值
        byte[] encryContext = md.digest();
  
        int i;  
        StringBuffer buf = new StringBuffer("");  
        for (int offset = 0; offset < encryContext.length; offset++) {
            // 将字节值转换为无符号整数
            i = encryContext[offset];  
            if (i < 0) i += 256;  // 处理负值
            if (i < 16) buf.append("0");  // 补充前导0,以保证每个字节都被表示为两位十六进制数
            buf.append(Integer.toHexString(i));  // 将字节值转换为十六进制字符串并追加到结果字符串
       }  
       
        // 返回MD5散列值的十六进制表示
        return buf.toString();
    } catch (NoSuchAlgorithmException e) {
        // 处理NoSuchAlgorithmException异常,通常是因为指定的MD5算法不可用
        e.printStackTrace();
        return  null;
    }  
}
 
    public static void main(String[] args) {
    //加密
    String pwd = "1";
    String salt = hjk;
    //2 通过这个盐值加密
    String md5Pwd = MD5Utils.encrypByMd5(pwd + salt);
    System.out.println(md5Pwd);
 
    
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值