MD5简介及使用方式
文章目录
- 概念
- 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简介及使用方式相关推荐
- md5加密原理 MD5简介
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! MD5简 ...
- 五分钟学会企业的OpenStack(T版)——简介及安装方式
五分钟学会企业的OpenStack(T版)--简介及安装方式 前言 一.OpenStack简介 二.OpenStack安装方式(T版)系列 前言 花了几天写完了OpenStack(T版)的系列文章,希 ...
- MD5简介及其算法源码
MD5简介 (源码下载) (摘自百度http://baike.baidu.com/view/7636.htm) MD5的全称是Message-digest Algorithm 5(信息-摘要算法),在 ...
- Phoenix 简介及使用方式
Phoenix 简介及使用方式 目录 Phoenix 简介及使用方式 一.Phoenix 简介 二.Phoenix 特点 三.Phoenix 架构 四.和Hbase中数据的关系映射 五.Phoenix ...
- Android系统 (190)---Android:JSON 简介 amp; 解析方式 讲解(Gson、AS自带org.json、Jackson)
Android:JSON 简介 & 解析方式 讲解(Gson.AS自带org.json.Jackson) 前言 现今最主流的数据交换格式 非 JSON莫属 今天,我将全面介绍 JSON &am ...
- 【WAF01】WAF简介及绕过方式
目录 1 WAF简介 2 WAF存在性判断 2.1 SQLmap 2.2 手工判断 3 WAF 绕过 4 总结 1 WAF简介 定义:WAF(Web Application Firewall, Web ...
- 【CSS】CSS 层叠样式表 ① ( 简介 | CSS 引入方式 - 内联样式 | 内联样式语法 | 内联样式缺点 )
文章目录 一.CSS 层叠样式表 二.CSS 引入方式 - 内联样式 1.内联样式语法 2.内联样式缺点 3.内联样式代码示例 ① 核心代码示例 ② 完整代码示例 ③ 执行结果 一.CSS 层叠样式表 ...
- JavaScript简介及其引入方式
#博学谷IT学习技术支持# 目录 #博学谷IT学习技术支持# 1.JavaScript简介 2.JavaScript 引入方式 1内部脚本:将 JS代码定义在HTML页面中 2. 外部脚本:将 JS代 ...
- Murano简介和源码方式安装
murano由来 OpenStack在H版本到K版本的摸索中,对整合容器的思路逐步清晰与成熟,温哥华OpenStack Summit上,Container/Docker成为一大关注焦点,随后发表的白皮 ...
最新文章
- 降低数值精度以提高深度学习性能
- 第十六届智能车竞赛赛道设计第一版本
- 2020 年的第 1 个重磅彩蛋!
- date比较大小 mybatis_MyBatis Sqlserver日期比较
- Oracle笔记 十四、查询XML操作、操作系统文件
- IBASE timestamp conversion exit
- diff 比较两个文件的差异
- HDU 1754线段树
- Xcode7 添加PCH文件
- 7-11 数列求和-加强版 (20 分)
- python functools
- 目标跟踪理论方法小结
- html如何加入浮动客服,css如何实现客服悬浮效果
- 深入学习OpenCV检测及分割图像的目标区域
- js获取时间、节假日、节气
- 浅谈CMMI3认证从评估前准备到正式评估的全部过程
- 学人工智能看什么书?AI入门书籍推荐
- linux开机卡在usb,UUI v1.9.7.3 轻松制作 Linux 版 USB 开机随身碟、记忆卡(Universal USB Installer)...
- 蕾辈使匚冉吃勘刚莱涨坟怪
- Android摄像头 只拍摄SurfaceView预览界面特定区域内容(矩形框)---完整实现(原理 底层Surface
热门文章
- 世界最牛员工每天挣10亿,记录保持23年!宣布退休后波音公司终于松了口气!...
- #ORA-12547: TNS: 丢失连接
- 【存储器了解 RAM flash和eeprom存储器的区别和作用】
- .NetCore后台使用QrCode.Net根据网络链接生成二维码
- iPhone越狱开发环境搭建
- tensorfow/model下object_detection训练错误记录
- 手机SD卡的检测方法
- ubuntu16.04安装intel集显驱动过程问题总结
- js数组的5种查询方式——find(),findIndex(),indexOf(),lastIndexOf(),include()
- TZOJ 3315 买火车票(线段树区间最小值)