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


相关推荐

  • pycharm2021host激活码【在线注册码/序列号/破解码】「建议收藏」

    pycharm2021host激活码【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    58
  • leetcode 两数相加_leetcode数组交集

    leetcode 两数相加_leetcode数组交集原题链接给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0]输出:[0]示例 3:输入:l1 = [9,9,9,9,9,9

    2022年8月8日
    6
  • c#设计登录界面并添加数据库_windows窗体连接数据库

    c#设计登录界面并添加数据库_windows窗体连接数据库本篇文章介绍了C#窗体的数据库连接及登录功能的实现工具或平台:VS2010、sqlserver20121.创建完窗体后,点击数据,选择添加新数据源2.选择数据库3.选择数据集4.新建连接-MicrosoftSQLServer,添加完测试一下5.添加数据库-注意把连接字符串部分复制一下,一会儿要用的6.保存连接字符串到配置文

    2022年9月17日
    0
  • es数据库简介

    es数据库简介##1.es是什么ElasticSearch简称ES,是一个高拓展和开源的全文搜索和分析引擎,可以准实时地存储、搜索、分析海量的数据。它和MongoDB、redis等一样是非关系型数据。业应用定位:采用RestfulAPI标准的可扩展和高可用的实时数据分析的全文搜索工具。可拓展:开源软件,支持很多第三方插件。高可用:在一个集群的多个节点中进行分布式存储,索引支持shards和复制,即使部分节点down掉,也能自动进行数据恢复和主从切换。采用RestfulAPI标准:通过http接口使用JSO

    2022年5月7日
    54
  • 丢失的手机关机了怎么找回_maven clean报错

    丢失的手机关机了怎么找回_maven clean报错最近比较忙,忙的都没时间更新博客了.所以今天要一口气写两篇.WebPart中DropDownList丢失状态的解决方案,十分头痛.现象就是DropDownList老是为空.当时有些晕,上网搜了好久,要么没答案,要么含糊其词。当有些网友说用HiddenField保存状态给我一些启发,于是我朝HiddenField的方向去想。原理:HiddenField的是可以直接反映…

    2022年10月9日
    1
  • python下载hashlib命令_python之hashlib模块[通俗易懂]

    python下载hashlib命令_python之hashlib模块[通俗易懂]importhashlib#md5加密工具,md5是不可逆的,所以只能比较密文,不能比较明文,python中不仅仅提供md5加密方法,还提供sha1,sha224,sha256,sha384,sha512,MD5加密算法test_md5=hashlib.md5()test_md5.update(bytes(‘123′,encoding=’utf-8’))ret=test_md5.hexd…

    2022年6月1日
    40

发表回复

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

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