Java-MD5加密[通俗易懂]

Java-MD5加密[通俗易懂]密码全是明文,防止内部人员监守自盗,改成暗文密码加密一般使用MD5加密特点:一旦加密之后,就不可解密光是MD5加密还不够安全,这时候就要添加盐值:盐值作用:让你的密码更加安全,MD5:支持加密次数MD5加密三个概念:MD5常规加密,为了让你的密码更加安全,MD5加密还要加盐值,为了让你的密码超级安全,它支持加密次数MD5Utils.encrypByMd5(String类型的密码)就执行加密importjava.security.MessageDigest;impo

大家好,又见面了,我是你们的朋友全栈君。

密码全是明文,防止内部人员监守自盗,改成暗文

密码加密 一般使用 MD5

加密特点:一旦加密之后 ,就不可解密

光是MD5加密 还不够安全 ,这时候就要添加盐值:

盐值作用:让你的密码更加安全,

MD5:支持加密次数

MD5加密三个概念: MD5常规加密,为了让你的密码更加安全,MD5加密还要加盐值,为了让你的密码超级安全,它支持加密次数 MD5Utils.encrypByMd5(String类型的密码)就执行加密


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

public class MD5Utils { 
   

    /** * 加密 * @param context */
    public static String encrypByMd5(String context) { 
   
        try { 
     
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(context.getBytes());//update处理 
            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");  
                buf.append(Integer.toHexString(i));  
           }  
            return buf.toString();
        } catch (NoSuchAlgorithmException e) { 
   
            // TODO Auto-generated catch block 
            e.printStackTrace();
            return  null;
        }  
    }

    public static void main(String[] args) { 
   
        //加密
        System.out.println(MD5Utils.encrypByMd5("123456"));
        //加密加盐 查询用户时,除了查到加密密码外,还能查到颜值。 把输入密码+盐值加密和数据库存放密码比对就OK
        System.out.println(MD5Utils.encrypByMd5("123456"+ StrUtils.getComplexRandomString(32)));
        System.out.println(MD5Utils.encrypByMd5("123456"+ StrUtils.getComplexRandomString(32)));
        System.out.println(MD5Utils.encrypByMd5("123456"+ StrUtils.getComplexRandomString(32)));
    }

}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157271.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月11日 上午11:16
下一篇 2022年7月11日 上午11:36


相关推荐

  • 【OpenClaw】——小龙虾极简接入Discord教程

    【OpenClaw】——小龙虾极简接入Discord教程

    2026年3月14日
    2
  • c语言-爱心代码的实现

    c语言-爱心代码的实现c 语言 爱心代码的实现 includestdio h includemath h includestdio hintmain floaty x z f for y 1 5f y 1 5f y 0 1f for x 1 5f x1 5f x 0 05f

    2026年3月16日
    3
  • 如何彻底删除卸载JDK?「建议收藏」

    如何彻底删除卸载JDK?「建议收藏」最近更新了jdk版本,当运行的时候出现错误couldnotopen’D:\jdk1.8.0_171\jre1.8.0_171\lib\amd64\jvm.cfg’主要是因为上个版本没有卸载干净和,jdk与jre安装的位置发生了冲突!解决jdk彻底删除的问题:1.在电脑的控制面板中卸载(基本的办法)。2.采用360安全卫士卸载,有风险(注册列表可能未删干净)3.在运行中…

    2022年6月25日
    55
  • Nginx 负载均衡演示之 upstream 参数 & location 参数

    Nginx 负载均衡演示之 upstream 参数 & location 参数nbsp upstream 参数 nginx 关于 upstream 参数官方文档 http nginx org en docs http ngx http upstream module htmlupstream 参数 参数 描述 service 反向服务地址加端口 weight 权

    2026年3月20日
    2
  • 关于tempdb的一些注意事项

    关于tempdb的一些注意事项

    2021年11月25日
    46
  • js计时器

    js计时器本示例利用 JavaScript 设计一个倒计时显示牌 实现方法 用结束时间减去现在时 获取时间差 再利用数学方法从时间差中分别获取日 时 分 秒等信息 最后通过定时器设置每秒执行一次 实现实时更新 操作步骤 1 使用 newDate 获取当前时间 使用 new 调用一个带有参数的 Date 对象 定义结束的时间 endtime newDate 2020 8 8 使用 getTime 方法获取现在时和结束时距离 1970 年 1 月 1 日的毫秒数 然后 求两个时间差 把时间差转

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号