MD5加密是常用的加密算法。可以对任意字符串的进行加密。生成16位字符数组。

密码验证:将输入的密码进行MD5加密转换后的字符串与数据库的密码进行比对。相等则验证通过。

 1 package utils;
 2
 3 import java.security.MessageDigest;
 4 import java.security.NoSuchAlgorithmException;
 5
 6 public class MD5Utils{
 7     /**
 8      *  字符串的加密
 9      * @param str
10      * @return byte[]
11      * @throws NoSuchAlgorithmException
12      */
13     public static byte[] encryptionStr(String str) throws NoSuchAlgorithmException {
14         if(str!=null){
15             //加密后得到的字节数组
16             byte[] bytes = null;
17             // 获取MD5算法实例 得到一个md5的消息摘要
18             MessageDigest md = MessageDigest.getInstance("MD5");
19             //添加要进行计算摘要的信息
20             md.update(str.getBytes());
21             //得出摘要结果
22             bytes = md.digest();
23             return bytes;
24         }
25         return null;
26     }
27     //字符数组转成字符串
28     private static String toHex(byte[] bytes) {
29
30         final char[] HEX_DIGITS = "0123456789ABCDEF".toCharArray();
31         StringBuilder ret = new StringBuilder(bytes.length * 2);
32         for (int i=0; i<bytes.length; i++) {
33             ret.append(HEX_DIGITS[(bytes[i] >> 4) & 0x0f]);
34             ret.append(HEX_DIGITS[bytes[i] & 0x0f]);
35         }
36         return ret.toString();
37     }
38     //密码验证
39     /*
40     * 将加密后的字节数组转换成十六进制的字符窜,形成最终的密码。
41     * 当输入字符串经过MD5加密后,得到的字符串与密码一样,则认为密码验证通过。
42     * */
43     public  static  boolean verification(String inputPassword,String dbPassword) throws NoSuchAlgorithmException {
44          String passwordByMD5 = toHex(encryptionStr(inputPassword));
45             if(dbPassword.equals(passwordByMD5)){
46                 return true;
47             }
48             return false;
49     }
50     public static void main(String[] args) throws NoSuchAlgorithmException {
51         String a = "test1";
52         String b ="test2";
53         String c ="ABCDE";
54         String [] str={a,b,c};
55                  for (String s : str) {
56                         byte [] bytes=encryptionStr(s);
57                         System.out.println("数据:" + s+" 加密后为:"+bytes.toString());
58                  }
59         String dbPassword = toHex(encryptionStr("abcdef"));
60         System.out.println(dbPassword);
61         String inputPassword = "abcdef";
62         String inputPassword2 = "abcdeffff";
63         System.out.println(verification(inputPassword,dbPassword));
64         System.out.print(verification(inputPassword,inputPassword2));
65     }
66 }

gitHub源码:MD5加密及密码验证

转载于:https://www.cnblogs.com/fabaogege/p/10111632.html

MD5加密及密码验证相关推荐

  1. java对密码进行加密的方法_如何在JAVA中使用MD5加密对密码进行加密

    如何在JAVA中使用MD5加密对密码进行加密 发布时间:2020-11-25 17:12:40 来源:亿速云 阅读:118 作者:Leah 本篇文章为大家展示了如何在JAVA中使用MD5加密对密码进行 ...

  2. node+mysql+vue-element-admin,前后端联动,md5加密,jwt验证,登录登出

    后端登录 搭建http服务 搭建https服务的话:搭建https服务 http服务我们前面其实已经搭好了 现在把端口换一下 18082 因为访问47.103.29.206:18082的话会报错,因为 ...

  3. php密码怎么用md5,如何使用PHP使用MD5加密此密码?

    下面的代码来自一个用PHP编写的登录脚本.它检查密码的数据库不使用MD5加密密码,但是当登录脚本检查数据库中的密码时,它正在检查原始密码而不加密.我熟悉md5()函数但是如何将其合并到以下内容中: s ...

  4. html静态网站登陆验证,静态页面js加密URL密码验证

    随手写的一个静态HTML页面JS加密URL,密码验证的jQuery插件 点击查看演示 HTML部分: 密码为passcode的链接测试 密码为mm2的链接测试 增加mrel属性,写入真实页面地址前缀, ...

  5. java绕过加密密码_JAVA中使用MD5加密实现密码加密

    1.新建Md5.java package com.loger.md5; import java.io.UnsupportedEncodingException; import java.securit ...

  6. Java实现MD5加密及验证(两种方式,加盐md5与未加盐md5)

    一.加盐MD5加密工具 package com.dimpt.base.util;import java.io.UnsupportedEncodingException; import java.sec ...

  7. Java实现MD5加密以及解密

    MD5的介绍 从本质上来说,MD5并不是一种加密算法,其全称是Message Digest Algorithm MD5(中文名:信息摘要算法第五版),为计算机安全领域广泛使用的一种散列函数,主要用于确 ...

  8. 使用MD5加密数据库中的用户密码介绍

    使用MD5加密数据库中的用户密码介绍 ●前言 我们知道,现在网络上一般的网站,稍微完善一点的,往往都需要用户先注册,提供诸如电子邮件.账号.密码等信息以后,成为网站栏目的注册用户,才可以享受网站一些特 ...

  9. Winform中简单使用MD5加密用户登录密码

    场景 MD5加密登录密码效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. ...

最新文章

  1. Python数据分析入门之pandas基础总结
  2. Mozilla Firefox 54 今起支持开启e10s多进程功能
  3. 使用Lombok优化代码
  4. Tomcat之Windows下安装
  5. redis源码剖析(十五)——客户端思维导图整理
  6. 服务器物理内存总是九十几,Solr总是使用超过90%的物理内存(Solr always use more than 90% of physical memory)...
  7. pytorch——计算图与动态图机制
  8. Flutter ClipPath 自定义CustomClipper 玩转不一样的背景图案
  9. Mybatis foreach 批量插入
  10. access insert语句怎么写_被缠上了,小王问我怎么在 Spring Boot 中使用 JDBC 连接 MySQL
  11. 软件开发过程中需要的文档汇总
  12. 银行转账java代码事务实现_Spring事务银行转账示例
  13. 阿里云云平台的物理安全防御措施
  14. 扇形面积公式推导过程
  15. 燕京八景寻踪﹒宛平城卢沟桥
  16. 【BZOJ4522】密匙破解(Pollard_rho)
  17. 2021-11-15
  18. C语言编译器(C语言编程软件)
  19. ★ SMILES与分子图像的转换代码【及后续操作:识别、指标评估】
  20. 使用MATLAB求积分和极限

热门文章

  1. ICESSL使用备忘
  2. MS开始提供Windows Vista beta2下载
  3. VS断点无效,断点未能绑定
  4. JS图片360度全景预览插件
  5. 电子政务软件系统公众服务的研究
  6. 读《game engine architecture》有感
  7. 竞争神经网络与SOM神经网络详解与matlab实践
  8. html5知识点:HTML5新特性
  9. ios html特殊字符转义字符,iOS URL 字符转义问题
  10. 快速熟悉H3 BPM的结构