【信息安全】MD5加密浅析
前段时间,网传京东泄露了几G的用户数据,后面又说用户数据是MD5加密的,让大家不要担心,改个密码之类云云。
出于好奇,上网了解了一下这个MD5。
一、MD5加密方式是什么
简单讲,MD5加密是一个用到哈希函数的复杂的不可逆的加密算法,只是作为了解的话,我们可以把它理解成是一个黑盒,我们输入不限位数的二进制信息,经过MD5加密,它会返回一个有限位数 32位的十六进制密文。
二、MD5的安全性如何
刚刚说MD5是不可逆的,这意味着你不能根据密文通过逆运算去推出明文。至于为什么是不可逆的,就像知乎上一个深入浅出的回答说的,比如加法算法,你可以根据输入,4+4=8,却不能根据8,去推出它是4+4,因为可能是1+2+5,也可能是其他的无数可能性。 因为MD5的不可逆,导致它的解密方式只能用对撞。 如之前所说,MD5输出的是一个32位的十六进制密文,就是输出的可能性有16的32次方(记为N,反正N很大很大就是了)。简单讲,碰运气的话,每次去算都是1/N的概率,我们知道当N趋于无穷大的时候,这个1/N就趋于0了。也就是说,用遍历的话,估计算个几年也不见得算得出来。
当然,时代是在不断进步的,一个加密算法被推行使用的同时,也会有很多的专家和黑客在努力去破解它,信息安全就是在这样的一个攻防的过程中不断发展的。
三、常见的所谓的MD5破解方式
MD5的目前主要是应用在验证方面。
还有一些常见的所谓的MD5破解方式,大概就是先准备一张表,将密码明文和对应的MD5密文存着,完了在拿密文去对,取得相应的密码明文。理论上来说,这个表至少得有N条,包括所有的密文,才能涵盖所有密码明文,这在技术上是很难实现的,基本上不可能。所以只能破解一些常见的简单的密码。
另外,在SQLSERVER中有内置加密函数,可以实现对数据的MD5加密。
))), , ))
【信息安全】MD5加密浅析的更多相关文章
- 常见https,SSH协议和MD5加密方式分析
前言 https,SSH协议和MD5加密是前端可能会接触到的加密,所以我就将他们进行了一个归纳. 1.https 1.1原理 A.就是在http加入SSL层,是http安全的基础;B.htts协议是在 ...
- 关于CryptoJS中md5加密以及aes加密的随笔
最近项目中用到了各种加密,其中就包括从没有接触过得aes加密,因此从网上各种查,官方的一种说法: 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学 ...
- Android数据加密之MD5加密
前言: 项目中无论是密码的存储或者说判断文件是否是同一文件,都会用到MD5算法,今天来总结一下MD5加密算法. 什么是MD5加密? MD5英文全称“Message-Digest Algorithm 5 ...
- android MD5加密
public class MD5Uutils { //MD5加密,32位 public static String MD5(String str) { MessageDige ...
- IOS 杂笔-9 (MD5 加密)
首先是一段对MD5的简介 *出自一位大牛之手* Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护 ...
- JS中使用MD5加密
下载 MD5 使用MD5加密的方法:下载md5.js文件,在网页中引用该文件: < script type="text/javascript" src="md5.j ...
- MD5工具类,提供字符串MD5加密、文件MD5值获取(校验)功能
MD5工具类,提供字符串MD5加密(校验).文件MD5值获取(校验)功能 : package com.yzu.utils; import java.io.File; import java.io.Fi ...
- MD5 加密
字符串加密 // 1. 准备好一个字符串 NSString *string = @"asdasfaf"; // 2. MD5加密是基于C语言的. 所以要把这个字符串转化成C的字符串 ...
- MD5加密的Java实现
在各种应用系统中,如果需要设置账户,那么就会涉及到储存用户账户信息的问题,为了保证所储存账户信息的安全,通常会采用MD5加密的方式来,进行储存.首先,简单得介绍一下,什么是MD5加密. MD5的全称是 ...
随机推荐
- BeanDefinition的创建(BeanDefinitionHolder的创建)
这个对另一篇章Bean Definition从加载.解析.处理.注册到BeanFactory的过程的扩展. Spring框架中BeanDefinition的继承结构. Spring框架中BeanDef ...
- JavaScript(核心、BOM、DOM)
http://www.flyne.org/article/407 JavaScript(核心.BOM.DOM) JavaScript是基于对象和事件驱动的客户端脚本语言.有如下特点: 交互性 安全性( ...
- webpack中Entry与Output的基础配置
entry顾名思义,就是打包的入口文件 module.exports = { // 这个文件要做打包,从哪一个文件开始打包 entry: './src/index.js', // 打包文件要放到哪里去 ...
- HDU - 5547 数独(回溯法)
题目链接:HDU-5547 http://acm.hdu.edu.cn/showproblem.php?pid=5547 正所谓:骗分过样例,暴力出奇迹. 解题思想(暴力出奇迹(DFS+回溯)): 1 ...
- C#中调用方法
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...
- SPOJ 4487. Can you answer these queries VI splay
题目链接:点击打开链接 题意比較明显,不赘述. 删除时能够把i-1转到根,把i+1转到根下 则i点就在 根右子树 的左子树,且仅仅有i这一个 点 #include<stdio.h> #in ...
- Linux Shell常用技巧(十一)
二十二. 交互式使用Bash Shell: 1. 用set命令设置bash的选项: 下面为set主要选项的列表及其表述: 选项名 开关缩写 描述 allexport -a 打开此开关, ...
- Failed to read artifact descriptor for org.apache.maven.plugins:maven-jar-plugin
在更新maven项目的时候出现许多jar包找不到的问题,但是在本地仓库中查找的时候包含这些jar包. 解决办法: 把所有报错缺少的jar包所在的文件夹删掉,重新更新maven项目,重新下载完成后错误解 ...
- 1.高并发教程-基础篇-之nginx负载均衡的搭建
温馨提示:请不要盲目的进行横向扩展,优先考虑对单台服务器的性能优化,只有单台服务器的性能达到最优化之后,集群才会被最大的发挥作用. 一.架构图: 服务器准备:3台,ubuntu16.04系统maste ...
- Knowledge Point 20180506 深究Java的跨平台特性
本章主题:从骨子里看Java的跨平台;本文内容部分摘自https://www.cnblogs.com/roger-yu/p/5827452.html 有过基础Java知识的开发人员都知道Java是跨平 ...