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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • kong笔记——认识kong

    kong笔记——认识kong背景最近公司打算重构API网关,给定的硬性条件是支持lua脚本,kubernetes可部署,可解析lua,另外需要支持身份认证,IP黑白名单,限流,负载均衡等一些功能,为此,在技术选型上锁定了kong以及APISIX,最终选择了kong。(原因:稳定性第一,性能第二,拓展性第三,社区未来发展第四)为什么选择kong其实抛开lua的支持,kong的一些功能点还是很吸引我的,比如天生支持API网关的基本特性(权限控制,安全,负载均衡,请求分发,监控等等),即开箱即用。如果我们选择了zuul,当需要为应

    2022年6月26日
    122
  • SAE J1939 协议源代码分析(二)-程序移植

    SAE J1939 协议源代码分析(二)-程序移植预备知识1.熟悉CAN2.0B协议,及相关硬件驱动开发2.熟悉SAEJ1939协议程序移植流程CreatedwithRaphaël2.1.0将代码加载到你的工程打开配置文件J1939_Config.h明白默认地址和标识符配置规则?了解J1939支持的功能配置使用

    2022年6月10日
    35
  • linux下安装pycharm到桌面_Linux下载pycharm

    linux下安装pycharm到桌面_Linux下载pycharm工欲善其事,必先利其器。既然开始学习了,就得有好的工具嘛!这里lz选了个pycharm的编译工具。可能是看着比较舒服吧(其实就是感觉和idea一样),当时也想着用eclipse安装插件,后来也没有用。该干嘛的就是干嘛的,我可不想任务栏里一排排的eclipse。要是着急了,傻傻分不清。lz建议条件允许的话,就不要用激活成功教程版了,还是正版才是王道。社区版也能满足日常的一些开发。废话不多说,下来开始我们伟大…

    2022年8月29日
    4
  • 音视频 RED 与 FEC 的 RTP 格式封装[通俗易懂]

    音视频 RED 与 FEC 的 RTP 格式封装[通俗易懂]音视频冗余数据的RTP格式封装背景RTP格式(RFC3550)RED数据(RFC2198)背景知识REDRTP格式REDSDP协商一般FEC的RTP载荷格式(RFC2733)基本原理GenericFEC方案GenericFECRTP格式FEC生成与恢复FEC生成示例FEC作为冗余编码使用FECSDP协商FEC作为独立流传输FEC作为冗余编码传输ULPFE…

    2022年8月11日
    7
  • sql导出excel丢失精度

    sql导出excel丢失精度

    2022年3月12日
    118
  • Python六大基本数据类型介绍[通俗易懂]

    Python六大基本数据类型介绍[通俗易懂]Python基本数据类型一、整型1、整型:int2、二进制整型二、浮点型三、布尔型四、复数类型五、字符串六、列表七、元组八、集合一、整型1、整型:int在数字中,正整数、0、负整数都称为整型。例:intvar=1000#type获取数据类型res1=type(intvar)print(res1)#id获取内存地址res2=id(intvar)print(res2)运行结果:2、二进制整型也可用二进制表示整型,print自动转换为十进制。例:intvar=

    2022年5月13日
    41

发表回复

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

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