什么叫MD5,MD5通常做什么用处,为什么MD5不可逆,用做密码加密的时候仍然可能会被解密?

本文探讨MD5的用途,作为散列函数用于数据完整性验证,解释其不可逆性及在密码加密中的风险,同时介绍了加盐和HMACMD5以增强安全性。通过编码实战展示了MD5、加盐MD5及HMACMD5的实现。

这里是修真院后端小课堂,每篇分享文从

【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】

八个方面深度解析后端知识/技能,本篇分享的是:

【什么叫MD5,MD5通常做什么用处,为什么MD5不可逆,用做密码加密的时候仍然可能会被解密?】

标题:

【修真院java小课堂】MD5等常用加密方式的简介

开场语:

大家好,我是IT修真院上海分院第10期的学员许东杰,一枚正直纯洁善良的java程序员,今天给大家分享一下,修真院官网java(职业)任务5,深度思考中的知识点——什么叫MD5,MD5通常做什么用处,为什么MD5不可逆,用做密码加密的时候仍然可能会被解密?

(1)背景介绍:

安全问题已经成为一个越来越重要的问题,在数据的传输过程中如何对重要数据进行加密解密是本课堂的主要内容。

(2)知识剖析:

加密中常见的算法种类及特点:

1、散列函数(hash):用来验证数据完整性的(不是用来加密解密),由于转化不可逆可以用来进行一些验证。常见散列算法:MD5(消息摘要、摘要长度默认128bit)、SHA、MAC(HMAC) 它们的总体安全性是逐步递增的

2、对称加密算法:通过相同密匙进行加密解密,可逆,用来加密解密。常见对称加密算法:DES算法、AED算法

3、非对称加密算法:密匙分为公钥(公开)和私钥(自己保存)。常见非对称加密算法:DH、RSA

加密过程中的两种数据转换:

传入的字符串-->字节数组-->加密过后的字节数组-->转为base64二进制字符进行传输

举例:一个128bit摘要长度的字符串,转为base64二进制字符串是:128/8* (4/3)=22个字符

传入的字符串-->字节数组-->加密过后的字节数组-->转为16进制字符串进行http传输

举例:一个128bit摘要长度的字符串,转为十六进制字符串是:(128/8)*2=32个字符

(3)常见问题:

MD5怎么使用,怎么提高它的安全性

(4)解决方案:

MD5虽然是不可逆的,但是可以通过彩虹码等进行破解

所以为了解决MD5安全性不高的问题,我们采取加盐的方式和HMACMD5(加密匙)方式来使用

(5)编码实战:

MD5加密测试

public class Md5Util {  

    /** 

     * 根据输入的字符串生成固定的32位MD5码 

     *  

&

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值