MD5只是用于加密吗?可听过文件MD5?

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: MD5只是用于加密吗?可听过文件MD5?

百度百科

MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。这套算法的程序在 RFC 1321 标准中被加以规范。
640.jpg
1996年后该算法被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如SHA-2。2004年,证实MD5算法无法防止碰撞(collision),因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。
640-1.jpg
从上面的介绍来说 MD5 人家只是个算法,只是多用于加密,但是人家还有个用处就是用于来校验文件是否完整。为什么这么说呢?同一个文件(比如说一个文件你 copy 一份换了一个名字,并没有修改) MD5 过后何获取文件 MD5 校验值结果是一样的。这就是问什么你下载的时候都会跟一个 MD5 的值,他是让你交验一下文件是否完整。
640.jpg
其还有个作用,比如说用户连续上传文件,一般人的做法就是:我给这个文件生成 UUID 名称,然后把 UUID 存在数据库中,但是如果用户连续不停的上传同一个文件,打个比方,你的网站有 10w 人访问,他们有 10% 的人把同一个文件上传了两份,一份文件是 1MB 这就多占了你 10000MB 空间。但是如果你设计一下用户上传的时候你先计算一下他的 MD5 的值然后去文件库里查找,如果存在则只要把之前的路径引用存放到你现在的库里就可以了,速度提升了,而且空间也省了很多。

640-1.jpg

引入maven

<dependency>
  <groupId>cn.hutool</groupId>
  <artifactId>hutool-all</artifactId>
  <version>5.6.5</version>
</dependency>

hutool 不用我说了吧

测试代码

public static void main(String[] args) {
    MD5 md5 = MD5.create();
    String s = md5.digestHex(new File("text.md"));
    System.out.println(s);
}

是不是很简单。学到了吧。

相关文章
|
3月前
|
数据安全/隐私保护 Python
Python中的MD5加密“解密”
Python中的MD5加密“解密”
73 0
|
2月前
|
存储 Java 数据库
密码专辑:对密码加盐加密,对密码进行md5加密,封装成密码工具类
这篇文章介绍了如何在Java中通过加盐和加密算法(如MD5和SHA)安全地存储密码,并提供了一个密码工具类PasswordUtils和密码编码类PasswordEncoder的实现示例。
65 10
密码专辑:对密码加盐加密,对密码进行md5加密,封装成密码工具类
|
2月前
|
安全 Linux 数据安全/隐私保护
python知识点100篇系列(15)-加密python源代码为pyd文件
【10月更文挑战第5天】为了保护Python源码不被查看,可将其编译成二进制文件(Windows下为.pyd,Linux下为.so)。以Python3.8为例,通过Cython工具,先写好Python代码并加入`# cython: language_level=3`指令,安装easycython库后,使用`easycython *.py`命令编译源文件,最终生成.pyd文件供直接导入使用。
python知识点100篇系列(15)-加密python源代码为pyd文件
|
2月前
|
数据安全/隐私保护 Python
Zipfile学习笔记(二)::通过zipfile模块暴力破解加密的压缩文件
如何使用Python的zipfile模块生成密码表并尝试暴力破解加密的ZIP压缩文件。
50 1
Zipfile学习笔记(二)::通过zipfile模块暴力破解加密的压缩文件
|
2月前
|
NoSQL Java Redis
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
这篇文章介绍了如何使用Spring Boot整合Apache Shiro框架进行后端开发,包括认证和授权流程,并使用Redis存储Token以及MD5加密用户密码。
42 0
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
|
3月前
|
人工智能 IDE 开发工具
Python实行任意文件的加密—解密
Python实行任意文件的加密—解密
31 2
|
3月前
|
人工智能 IDE 开发工具
Python实行任意文件的加密—解密
Python实行任意文件的加密—解密
52 1
|
2月前
|
数据安全/隐私保护 Python
Python中的MD5加密“解密”
Python中的MD5加密“解密”
109 0
|
2月前
|
IDE 开发工具 数据安全/隐私保护
Python编程实现批量md5加密pdf文件
Python编程实现批量md5加密pdf文件
43 0
|
20天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。