文章目录

  • 概念
  • MD5的特点
  • 使用方式【Java】
    • 1. 添加md5依赖坐标
    • 2. 编写工具类

概念

MD5加密算法全称是 Message-Digest Algorithm 5(信息-摘要算法),它对信息进行摘要采集,再通过一定的位运算,最终获取加密后的MD5字符串。

MD5的特点

  • 针对不同长度的待加密的数据、字符串等等,其都可以返回一个固定长度的MD5加密字符串。(通常为32位的16进制字符串)
  • 其加密过程几乎不可逆,除非维护一个庞大的Key-Value数据库来进行碰撞破解,否则几乎无法解开。
  • 运算简便,且可实现方式多样,通过一定的处理方式也可以避免碰撞算法的破解。(例如加盐:添加随机字符串)
  • 对于一个固定的字符串、数字等等,MD5加密后的字符串也是固定的,也就是说不管MD5加密多少次,都是同样的结果。

使用方式【Java】

1. 添加md5依赖坐标

<dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.3.2</version>
</dependency>
<dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.3</version>
</dependency>

2. 编写工具类

public class Md5 {/*** MD5加密方法** @param text 明文* @param key  秘钥* @return 密文* @throws Exception*/public static String md5(String text, String key) throws Exception {// 加密后的字符串String encodeStr = DigestUtils.md5Hex(text + key);return encodeStr;}/*** MD5验证方法** @param text 明文* @param key  秘钥* @param md5  密文* @return true* @throws Exception*/public static boolean verify(String text, String key, String md5) throws Exception {// 根据传入的密钥进行验证String md5Text = md5(text, key);if (md5Text.equalsIgnoreCase(md5)) {System.out.println("MD5验证通过!");return true;}return false;}// 测试方法public static void main(String[] args) throws Exception {// 注册:用户名tom 密码123456// 添加用户时,进行加密String testString = Md5.md5("123456", "testKey");System.out.println("经MD5加密后的字符串为:" + testString);// 登录:用户名tom 密码123456     select * from user where username = tom and password = 123456// 根据用户名进行查询 f00485441dfb815c75a13f3c3389c0b9boolean verify = Md5.verify("123456", "testKey", "f00485441dfb815c75a13f3c3389c0b9");System.out.println(verify);}}

MD5简介及使用方式相关推荐

  1. md5加密原理 MD5简介

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! MD5简 ...

  2. 五分钟学会企业的OpenStack(T版)——简介及安装方式

    五分钟学会企业的OpenStack(T版)--简介及安装方式 前言 一.OpenStack简介 二.OpenStack安装方式(T版)系列 前言 花了几天写完了OpenStack(T版)的系列文章,希 ...

  3. MD5简介及其算法源码

    MD5简介 (源码下载) (摘自百度http://baike.baidu.com/view/7636.htm) MD5的全称是Message-digest Algorithm 5(信息-摘要算法),在 ...

  4. Phoenix 简介及使用方式

    Phoenix 简介及使用方式 目录 Phoenix 简介及使用方式 一.Phoenix 简介 二.Phoenix 特点 三.Phoenix 架构 四.和Hbase中数据的关系映射 五.Phoenix ...

  5. Android系统 (190)---Android:JSON 简介 amp; 解析方式 讲解(Gson、AS自带org.json、Jackson)

    Android:JSON 简介 & 解析方式 讲解(Gson.AS自带org.json.Jackson) 前言 现今最主流的数据交换格式 非 JSON莫属 今天,我将全面介绍 JSON &am ...

  6. 【WAF01】WAF简介及绕过方式

    目录 1 WAF简介 2 WAF存在性判断 2.1 SQLmap 2.2 手工判断 3 WAF 绕过 4 总结 1 WAF简介 定义:WAF(Web Application Firewall, Web ...

  7. 【CSS】CSS 层叠样式表 ① ( 简介 | CSS 引入方式 - 内联样式 | 内联样式语法 | 内联样式缺点 )

    文章目录 一.CSS 层叠样式表 二.CSS 引入方式 - 内联样式 1.内联样式语法 2.内联样式缺点 3.内联样式代码示例 ① 核心代码示例 ② 完整代码示例 ③ 执行结果 一.CSS 层叠样式表 ...

  8. JavaScript简介及其引入方式

    #博学谷IT学习技术支持# 目录 #博学谷IT学习技术支持# 1.JavaScript简介 2.JavaScript 引入方式 1内部脚本:将 JS代码定义在HTML页面中 2. 外部脚本:将 JS代 ...

  9. Murano简介和源码方式安装

    murano由来 OpenStack在H版本到K版本的摸索中,对整合容器的思路逐步清晰与成熟,温哥华OpenStack Summit上,Container/Docker成为一大关注焦点,随后发表的白皮 ...

最新文章

  1. 降低数值精度以提高深度学习性能
  2. 第十六届智能车竞赛赛道设计第一版本
  3. 2020 年的第 1 个重磅彩蛋!
  4. date比较大小 mybatis_MyBatis Sqlserver日期比较
  5. Oracle笔记 十四、查询XML操作、操作系统文件
  6. IBASE timestamp conversion exit
  7. diff 比较两个文件的差异
  8. HDU 1754线段树
  9. Xcode7 添加PCH文件
  10. 7-11 数列求和-加强版 (20 分)
  11. python functools
  12. 目标跟踪理论方法小结
  13. html如何加入浮动客服,css如何实现客服悬浮效果
  14. 深入学习OpenCV检测及分割图像的目标区域
  15. js获取时间、节假日、节气
  16. 浅谈CMMI3认证从评估前准备到正式评估的全部过程
  17. 学人工智能看什么书?AI入门书籍推荐
  18. linux开机卡在usb,UUI v1.9.7.3 轻松制作 Linux 版 USB 开机随身碟、记忆卡(Universal USB Installer)...
  19. 蕾辈使匚冉吃勘刚莱涨坟怪
  20. Android摄像头 只拍摄SurfaceView预览界面特定区域内容(矩形框)---完整实现(原理 底层Surface

热门文章

  1. 世界最牛员工每天挣10亿,记录保持23年!宣布退休后波音公司终于松了口气!...
  2. #ORA-12547: TNS: 丢失连接
  3. 【存储器了解 RAM flash和eeprom存储器的区别和作用】
  4. .NetCore后台使用QrCode.Net根据网络链接生成二维码
  5. iPhone越狱开发环境搭建
  6. tensorfow/model下object_detection训练错误记录
  7. 手机SD卡的检测方法
  8. ubuntu16.04安装intel集显驱动过程问题总结
  9. js数组的5种查询方式——find(),findIndex(),indexOf(),lastIndexOf(),include()
  10. TZOJ 3315 买火车票(线段树区间最小值)