我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MD5密码加密

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MD5密码加密

什么是MD5加密
MD5消息摘要算法(MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
MD5加密是一种不可逆的加密算法,不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样不可逆的加密算法处理,得到相同的加密密文并被系统重新识别后,才能真正解密。
——百度百科

为什么要使用MD5加密
在存储一些敏感的信息的时候,如果不进行加密则容易出现安全问题。例如:用户存储的密码,如果数据中的密码采用明文,一旦数据库泄露,则用户密码直接泄露。但是使用MD5加密算法之后即使数据泄露,这些密码也无法破解,保证了数据的安全性。

基于spring-core工具加密
这种方式加密方式比较灵活,可以在工具类中多层自定义加密方式;

导入依赖
     
            org.springframework
            spring-core
            4.1.7.RELEASE
       

2、代码
MD5Util.java
import org.springframework.util.DigestUtils;
//必须得有Spring-core支持
public class MD5Util {
    //必须要有Spring-core支持
    public static String getMd5Plus(String pwd){
        //先进行第一层加密
        String md1 = DigestUtils.md5DigestAsHex(pwd.getBytes());
        //截取第一层加密后的密文的前6位
        String substring6 = md1.substring(0, 6);//前包含后不包含
        //再对密文+前6位再加密
        String md5plus = DigestUtils.md5DigestAsHex((md1+substring6).getBytes());
        return md5plus;
    }
}
测试
String pwd="123456";
//033e997f49e0cff004e70b09303f670a
String md5Plus1 = MD5Util.getMd5Plus(pwd);
String login_pwd="123456";
//033e997f49e0cff004e70b09303f670a
String md5Plus2 = MD5Util.getMd5Plus(login_pwd);
//true
System.out.println(md5Plus1.equals(md5Plus2));
二、基于hutool工具进行加密
1、导入依赖
       
            cn.hutool
            hutool-all
            5.7.16
       

2、代码
String str_pwd="***";
//e10adc3949ba59abbe56e057f20f883e
String md5Hex1 = DigestUtil.md5Hex(str_pwd);
String str_login_pwd="123456";
//e10adc3949ba59abbe56e057f20f883e
String md5Hex2 = DigestUtil.md5Hex(str_login_pwd);
//true
System.out.println(md5Hex1.equals(md5Hex2))

MD5用途
1.防止被篡改:
1)比如发送一个电子文档,发送前,我先得到MD5的输出结果a。然后在对方收到电子文档后,对方也得到一个MD5的输出结果b。如果a与b一样就代表中途未被篡改。
2)比如我提供文件下载,为了防止不法分子在安装程序中添加木马,我可以在网站上公布由安装文件得到的MD5输出结果。
3)SVN在检测文件是否在CheckOut后被修改过,也是用到了MD5.

防止直接看到明文:
现在很多网站在数据库存储用户的密码的时候都是存储用户密码的MD5值。这样就算不法分子得到数据库的用户密码的MD5值,也无法知道用户的密码。(比如在UNIX系统中用户的密码就是以MD5(或其它类似的算法)经加密后存储在文件系统中。当用户登录的时候,系统把用户输入的密码计算成MD5值,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这不但可以避免用户的密码被具有系统管理员权限的用户知道,而且还在一定程度上增加了密码被破解的难度。)

防止抵赖(数字签名):
这需要一个第三方认证机构。例如A写了一个文件,认证机构对此文件用MD5算法产生摘要信息并做好记录。若以后A说这文件不是他写的,权威机构只需对此文件重新产生摘要信息,然后跟记录在册的摘要信息进行比对,相同的话,就证明是A写的了。这就是所谓的“数字签名”。

MD5安全性
普遍认为MD5是很安全,因为暴力破解的时间是一般人无法接受的。实际上如果把用户的密码MD5处理后再存储到数据库,其实是很不安全的。因为用户的密码是比较短的,而且很多用户的密码都使用生日,手机号码,身份证号码,电话号码等等。或者使用常用的一些吉利的数字,或者某个英文单词。如果我把常用的密码先MD5处理,把数据存储起来,然后再跟你的MD5结果匹配,这时我就有可能得到明文。
 

 

来源地址:https://blog.csdn.net/Pursuit_li/article/details/128538117

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MD5密码加密

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

2023-09-25

MD5加密

MD5:是一种不可逆的加密算法.它是可靠的,并且安全的.在python中我们不需要手写这一套算法.只需要引入一个叫hashlib的模块就能搞定MD5的加密工作. import hashlib obj = hashlib.md5()obj.u
2023-01-30

android md5加密与rsa加解密实现代码

代码如下: import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgori
2022-06-06

Python中MD5加密

MD5是什么下面的概念是百度百科的:Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321(R.Rivest,
2023-01-31

如何在JAVA中使用MD5加密对密码进行加密

本篇文章为大家展示了如何在JAVA中使用MD5加密对密码进行加密,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.新建Md5.javapackage com.loger.md5;import jav
2023-05-31

Android中的md5加密怎么与php md5加密保持一致

这期内容当中小编将会给大家带来有关Android中的md5加密怎么与php md5加密保持一致,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在Android开发过程中加密密码常常采用md5加密方式,然而如
2023-05-31

AS3 MD5加密资料

MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2、MD3和MD4发展而来。          Message-Digest泛
2023-01-31

Python 实现MD5加密

from hashlib import md5def encrypt_md5(s): # 创建md5对象 new_md5 = md5() # 这里必须用encode()函数对字符串进行编码,不然会报 TypeError:
2023-01-30

Java利用MD5加盐实现对密码进行加密处理

在开发的时候,有一些敏感信息是不能直接通过明白直接保存到数据库的。最经典的就是密码了。如果直接把密码以明文的形式入库,不仅会泄露用户的隐私,对系统也是极其的不厉。本文就来和大家介绍一下如何对密码进行加密处理,感兴趣的可以了解一下
2023-02-22

MD5 加密安全吗?

只是简单的使用 MD5 加密是不安全的,因为每个字符串都会生成固定的密文,那么我们就可以使用彩虹表将密文还原出来,所以它不是安全的。想要解决这个问题,我们需要通过加盐的手段,每次生成一个不同的密码,就把这个问题解决了。
MD5加密密文2024-12-01

Java使用MD5加盐对密码进行加密处理,附注册和登录加密解密处理

前言 在开发的时候,有一些敏感信息是不能直接通过明白直接保存到数据库的。最经典的就是密码了。如果直接把密码以明文的形式入库,不仅会泄露用户的隐私,对系统也是极其的不厉,这样做是非常危险的。 那么我们就需要对这些铭文进行加密。 Java常用加
2023-08-17

python3学习之md5加密

import hashlib## #####md5#####双重加密,核对密码时也需要如此hash = hashlib.md5(bytes('tttt', encoding='utf-8'))  #tttt是第一层加密,在比较md5时也需要
2023-01-31

c++如何实现md5加密

本文小编为大家详细介绍“c++如何实现md5加密”,内容详细,步骤清晰,细节处理妥当,希望这篇“c++如何实现md5加密”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。头文件定义/*****************
2023-07-02

MD5算法加密的过程

MD5 是一种算法, MD5 中的 MD 代表 Message Digest, 也即信息摘要.至于数字 5, 则因它是从更早的 MD4 算法改进而来, 因此得名 MD5.

DEDECMS的20位MD5加密密文解密示例介绍

解密20位md5,20位md5加密算法。 dede编程客栈cms的20位md5加密算噶是从32位m编程客栈d5中截取的20位,所以去掉前3位喝最后1位,即可获得16位md5值,即可破解15位md5。 例如:数据库的密文是f297a57a5a
2022-06-12

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录