【信息安全】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的全称是 ...
随机推荐
- UVa 1640 - The Counting Problem(数论)
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- 5、Spring Cloud-声明式调用 Feign(下)
5.5.在Feign中使用HttpClient和OkhHttp Feign 中.Client 是一个非常重要的组件, Feign 最终发送 Request 请求以及接收 Response响应都是由 C ...
- 《OpenGL编程指南第七版》学习——编译时提示“error C2381: “exit” : 重定义;__declspec(noreturn) 不同”错误的解决办法
解决办法一. #if defined(_WIN32) # ifndef GLUT_BUILDING_LIBextern _CRTIMP void __cdecl exit(int); 上面是glut. ...
- URL列表
MySql函数大全:http://www.cnblogs.com/xuyulin/p/5468102.html
- iOS 屏幕录制功能
系统框架 #import <ReplayKit/ReplayKit.h> // 系统视频录制框架 声明协议 <RPPreviewViewControllerDelegate> ...
- SDN测量论文粗读(三)9.24
Jaal: Towards Network Intrusion Detection at ISP Scale 论文来源:CoNext 发表时间:2015 解决问题及所做贡献:Jaal:大规模精细网络入 ...
- PHP介绍(PHP入门1)
BS架构和CS架构 B:Browser:浏览器 S:Server:服务器 C:Client:客户端 BS 浏览器和服务器的关系,通过浏览器来访问服务器,比如:百度.新浪... 优点:只要有浏览器就能访 ...
- 在Swift中使用AutoLayout-VFL(AutoLayout-VFL笔记)
1.背景 iOS开发这几年, UI布局工具从frame到Masonry到SnapKit, sb和xib的AutoLayout也用过, 但是代码版本的AutoLayout倒是没用过, 最近一年, 频频发 ...
- iOS 百度地图判断用户是否拖动地图的检测方法
前言:百度地图API并没有提供移动地图时的回调接口 实现:通过判断当前地图的中心位置是否为用户位置来判断,代码如下 -(void)mapView:(BMKMapView *)mapView regio ...
- javascript 中x++和++x的不同
x++和++x都是给x加一,但是前者是完成赋值之后再递增x,后者相反. 例如:如果x是5,y=x++会将y设置为5,x设置为6:而y=++x会将x和y都设置为6.