首页 > 编程语言 >使用 Java 类生成 MD5 加密字符

使用 Java 类生成 MD5 加密字符

时间:2022-11-05 23:00:49浏览次数:42  
标签:md 加密 数据库 密码 Java MD5 md5

MD5 常用于密码加密,例如,在注册时可以将密码转为 MD5 再放入数据库,在登录时校验登录密码和数据库存放的加密密码是否一致,来保证密码在数据库中存储的安全性。

下面介绍使用 Java 自带的加密类 MessageDigest 来加密字符:

/**
 * MD5生成器
 *
 * 1.MD5(message-digest algorithm 5)信息摘要算法,
 *   它的长度一般是32位的16进制数字符串(如81dc9bdb52d04dc20036dbd8313ed055)
 * 2.由于系统密码明文存储容易被黑客盗取
 * 3.应用:注册时,将密码进行md5加密,存到数据库中,防止可以看到数据库数据的人恶意篡改。
 *       登录时,将密码进行md5加密,与存储在数据库中加密过的密码进行比对
 * 4.md5不可逆,即没有对应的算法,从产生的md5值逆向得到原始数据。
 *   但是可以使用暴力破解,这里的破解并非把摘要还原成原始数据,如暴力枚举法。
 */
public class MD5Utils {

    public static String md5(String password) {
        //生成一个md5加密器
        try {
            //创建具有指定算法名称如MD5的摘要
            MessageDigest md = MessageDigest.getInstance("MD5");
            //使用指定的字节数组更新摘要
            md.update(password.getBytes());
            //BigInteger 将8位数的字符串转成16位的字符串,得到的字符串形式是哈希码值
            //BigInteger(参数1, 参数2) 参数1:1表示正数 0表示零 -1表示负数
            //md.digest() 进行哈希计算并返回一个字节数组
            return new BigInteger(1, md.digest()).toString(16);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return null;
    }
}

标签:md,加密,数据库,密码,Java,MD5,md5
From: https://www.cnblogs.com/luisblog/p/16861608.html

相关文章

  • SAP Java Connector 的配置指南
    SAPJava连接器(JCo)3.1需要Java运行时环境(JRE)版本8或11。有关受支持平台和Java运行时环境的最新详细列表,请参阅SAP说明2786882。最新版本的SAPJava......
  • SAP Java Connector 组件介绍
    SAPJavaConnector3.1运行时环境由两部分组成:sapjco3.jar-包含JCo的Java运行时类的存档{libraryprefix}sapjco3{sharedlibraryextension}-包含JCo原生......
  • java 文件类
    java常用的文件操作1~文件的创建(三种不同方法):(1)根据路径构建一个File对象:newFile(Stringpathname)(2)根据父目录文件+子路径构建:newFile(Fileparent,Stringchild)(3)......
  • JavaScript修改修改图片dpi
    欢迎关注前端早茶,与广东靓仔携手共同进阶​​​​前端早茶专注前端,一起结伴同行,紧跟业界发展步伐~ 一、原理changeDPI提供了2个实用函数,可以更改画布生成的图像的dpi,无......
  • JavaScript修改修改图片dpi
    欢迎关注前端早茶,与广东靓仔携手共同进阶​​​​前端早茶专注前端,一起结伴同行,紧跟业界发展步伐~ 一、原理changeDPI提供了2个实用函数,可以更改画布生成的图像的dpi,无......
  • Java之用正则表达式提取数据
    要将字符串如11月7日10点前反馈提取数据进行存储,可使用正则表达式。代码示例如下:StringactualFeedbackTime="11月7日10点前反馈";Patternptn=Pattern.compile("(\\d+)......
  • java 编译器
    1.javac介绍2. javac文件系统3. 词法分析4.语法分析之认识树节点5.语法分析之建立抽象语法树6.符号表的组织7. 填充符号表8. 插入式注解的实现9.语......
  • IDEA怎么将目录转换成资源,在目录下为什么不能创建包或者是java类的问题
    在学习建立Maven模块的时候出现的问题,理应该上面红色的那一块应该和下面的那一块是一样的,但是不知道为什么不一样,而且,也无法在xxxx这个目录下面建立包或者是java类  ......
  • javaSE基础-其它常用类
    其它常用类System类System类代表系统,系统级的很多属性和控制方法都放置在该类的内部,位于java.lang包。该类的构造器是private的,无法创建该类的对象。其成员变量和成员方......
  • Java获取目录下的文件你知道是用哪个方法吗
    Java获取目录下的文件你知道是用哪个方法吗Java的文件操作模块也是一个重要的模块,当初学Java的文件操作的时候一头雾水,觉得很难,现在复盘一下,巩固一下文件操作的知识,没准有......