关于MD5加密算法密码验证问题

作者&投稿:爨欢 (若有异议请与网页底部的电邮联系)
MD5密码问题,~

这好象不是md5密码..位数不对.. 要是我没有记错,的话.应该是8,16,32,64位的..这是45位的?

MD5并不是一种加密算法,而是hash函数算法,hash函数与加密算法的区别在于:
第一,前者可以不用密钥,后者必须使用密钥;
第二,前者不能倒回去,就是说由计算结果不能得出原先的明文,而后者必须能倒回去;
第三,前者输入与输出长度不同,且输出长度明显小于输入长度,因此又称为消息摘要,后者一般输入与输出长度相同。

下面说一下暴力破解MD5的问题,由于MD5是消息摘要算法,不同的输入可以产生相同的输出,因此反过来查是无法得到唯一确定的原码的。另外,从理论上讲,MD5的输入可以有无限多个。

(恰恰我最近也在研究加密这块,

我们公司项目的RSA ASE MD5 SHA-1加密方案都是我写的。

直接拿我分享会上的稿子了)

先回答你的问题:

你的担心是正确的,

MD5加密的结果值A,是可以由两个不同的内容B和C得到的

即:期望的正确密码 a     a进行MD5加密的结果   0cc175b9c0f1b6a831c399e269772661

某人输入了错误的密码x,

x进行特殊的算法处理,是可以得到0cc175b9c0f1b6a831c399e269772661 这个MD5值的

————

但是你注意一点,错误的密码数据,必须是通过复杂算法得到,简单点称作“碰撞算法”。碰撞算法,其实可以看作是一种伪装算法,即,把错误的东西伪装成某个正确东西的MD5值。

至于“碰撞算法”的原理,可以从MD5加密的原理探知1、2,

MD5加密的过程有四步骤:

  1. 填充 2.初始化变量 3. 处理分组数据 4.输出结果

“碰撞算法”原理就是在前三步进行“大数据量样本的填充-试错-填充试错-直至得到期望的结果

破解过程中有三点是必须清晰的;

1.大量的正确密码的样本

2.采用碰撞算法

3.事先预知的,破解者期望的正确的结果

三者缺一不可

MD5“碰撞算法”的示例场景也是在 文件(比如数字签名)摘要加密上,

即,像密码学家演示的那样:

通过算法,可以得到相同MD5值的A和B  (A和B只是代指),这种算法2004年已经由中国的密码学家王小云实现。

但是回到题主担心的,

非法分子,事先并不知道  张无忌的账号——正确密码对应的MD5值,

他只能用“碰撞算法”去试,随便编一个假的密码,用“碰撞算法”去进行伪装填充-试错

但是试的过程就是无数次跟贵公司后台校验的过程,

在这个过程,贵公司后台应该做了用户当日最大错误密码次数处理。

所以理论上,不存在一个人,输入了错误的密码,登录成功的情况。

假设这个人每天能试5次,使用“碰撞算法”估计要算好几辈子了。

——

但是强调一下“MD5碰撞算法”的应用前提:

  1. 已知的明文以及明文对应的MD5值

  2. 根据1的条件,算法可以伪装出 另一个明文以及相同的MD5值

所以,不存在偶尔输错了一个密码,使用MD5加密,凑巧得到了正确密码的MD5值,这种情况不满足“碰撞算法”的条件和前提。

根本不可能。

安全性总结:

对于文件来说碰撞可能容易,但是对于限定长度的密码或者密文来说,MD5作为一种高性能高安全的数字签名算法来说,还是非常实用的

——

综上 MD5碰撞几个关注点

  1. 多数情况下,会产生不可视字符,而密码不可能存在不可视字符的.

  2. 生成"碰撞"的字符,能和你密码本身长度相等的.基本不可能.


基于上面两点.只要稍作点文章.就可以防止MD5碰撞了.

1.密码进行多次MD5加密
2.密码过滤不过视字符.
3.密码是定长的.例如:32个字符.用户不够的字符,用一固定字符如:空格补充.超长的.一律非法.

————

参考文章

【1】中国密码学家王小云2004年提交的破解MD5的算法

【2】碰撞算法原理分析

【3】产生MD5碰撞的新的充分条件集

【4】MD5碰撞




攻防实战——轻松解密md5
面对大量密码,md5Crack4支持批量处理。只需将MD5密码整理成txt文件,如图10所示,工具将自动处理,大大节省时间。破解完成后,你可以通过结果展示和日志查看功能(图11),分析破解过程和结果。当然,MD5加密并非一成不变,有时需要结合变异加密算法如"password=md5(jiami(str))"。这时,我们可以借鉴特定的...

怎样对数据进行md5加密呢
我编写了一个登陆窗口需要对用户密码进行md5加密请问怎样加密呢???... 我编写了一个登陆窗口 需要对用户密码进行md5加密 请问怎样加密呢??? 展开  我来答 3个回答 #热议# 该不该让孩子很早学习人情世故?匿名用户 2013-10-11 展开全部 用md5算法啊;public class MD5 { private static MD5 md5 = ...

md5加密以后的字符串长度
加密后为128位(bit),按照16进制(4位一个16进制数)编码后,就成了32个字符。MD5并不是加密算法zhidao,而是摘要算法。加密算法是可逆的,摘要算法是理专论上不可逆的,详细步骤:1、md5算法主要应用在密码领域,为了防止明文传输密码的危险性,一般会用密码的md5值来代替密码本身。2、md5算法的工具...

解密下MD5密码
中国的 王小云 教授在2005年已经破解了MD5加密算法,她带领的团队只用普通个人pc机,利用杂凑函数的杂凑冲撞算法进行Hash函数的研究,只是破解方法设计到互联网及电子商务安全,所以是机密的,未公开,现在网站或工具的破解只是暴力破解,既穷举法, www.cmd5.com 这些收费破解网站都是链接到一个信息库,那里...

MD5?加密问题
在MD5算法中,信息-摘要的大小和填充的必要条件与MD5完全相同。Den boer和Bosselaers曾发现MD5算法中的假冲突(pseudo-collisions),但除此之外就没有其他被发现的加密后结果了。 Van oorschot和Wiener曾经考虑过一个在散列中暴力搜寻冲突的函数(brute-force hash function),而且他们猜测一个被设计专门用来搜索MD5冲突...

今日实用工具推荐—md5在线加密解密
md5加密以其不可逆性确保了数据安全,但在线解密平台如md5.cn则是通过预先存储常见明文与md5对应关系来进行匹配。该站点功能全面,包括文件或数据完整性检查,以及在威胁情报网站查找恶意文件等。其免费指数高,解密范围广泛,且无广告,方便用户使用。对于寻求高效、免费且支持多种算法解密的用户,md5.cn是...

md5码特性
MD5码是一种独特的加密技术,具有显著的特性。其首要特点就是不可逆性。设想一下,如果你有一个私密的字符串,比如"我的秘密文字",通过MD5算法处理后,会得到一个哈希值,比如b9944e9367d2e40dd1f0c4040d4daaf7。当你将这个哈希值分享给他人,他们即使拥有这个值,也无法通过已知的系统或方法复原出...

既然md5算法不可逆,那么加密得到一串字符串有什么用?
一般用做数据库用户密码的加密,为了让数据库中存储的密码不外泄一般采用MD5这种不可逆的加密算法,当用户登录时对输入的密码进行MD5加密,对比数据库中存储的密码进行密码验证.文件MD5 的全称是message-digest algorithm 5.将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的md5...

分享国内常用的免费MD5在线解密网站,这5个网站很实用
其次,国内广为人知的"cmd5"自2006年起运营,拥有约90万亿条查询记录,占用超过500TB硬盘,查询成功率同样在95%以上。它的数据库丰富,对于一些复杂的md5和sha1加密都能提供解决方案。"T007-MD5-解密"网站专注于md5等哈希算法的在线破解,不仅提供单个密文查询,还支持批量操作,特别适合开发者使用,包括...

MD5加密后的密码是多少位的
我见过的都是算成 32 个字符的,也就是 128位。好像也有别的版本,可以得到 16 个字符,24个字符等等。MD5是摘要算法,是不可逆的。我觉得加密总得对应一个解密,可以得到原来的信息,但是MD5不可以,所以MD5不是加密算法。

宝鸡市18561732728: 听说下系统要进行什么MD5验证,请问什么是MD5,为什么要验证,用什么工具验证呢? -
直卖奥麦: MD5是message-digest algorithm 5(信息-摘要算法)的缩写,被广泛用于加密和解密技术上,它可以说是文件的“数字指纹”.任何一个文件,无论是可执行程序、图像文件、临时文件或者其他任何类型的文件,也不管它体积多大,都有且只...

宝鸡市18561732728: md5加密的算法是否只有一种 -
直卖奥麦: MD5算法基本上都是一样的,有一个标准的算法,但是不排除部分人重写MD5的算法导致无法验证.一般来说,MD5的核心算法都是一样的,会把信息加密成一个128位的2进制字节流,然后把2进制字节流转为16进制的字符串.理论上来说,二进制字节流转16进制字符串这一步有可能会因为不同的人不同.但是如果按标准的话,MD5加密应该是一致的.为了安全,你可以把自己的MD5加密方法提供给对方.

宝鸡市18561732728: md5为什么不能解密? -
直卖奥麦: MD5加密原理是散列算法,散列算法也称哈希算法. 计算机专业学的数据结构就有哈希表这一知识点. 比如10除以3余数为一,4除以3余数也为一,但余数为一的就不知道这个数是哪个了. 所以md5不能解密. 就算是设计这个加密算法的人都不知道. 但是你的密码是怎么验证的呢?就是因为同一密码加密后一定相同. 你输入密码加密后才能知道你的密码是否正确. 也就是说,你的密码只有你自己知道. 也是为什么扣扣密码只能重置,不能找回的原因. over

宝鸡市18561732728: 菜鸟提问!请高手回答! -
直卖奥麦: 简单的说,MD5是一种哈希算法的加密方式. 在你这里,是指的数字签名,也有很多人称之为数字指纹. 你可以通过对照网站发布出来的MD5值,和你下载后的软件的MD5,看看是否一致,以此判断你下载的软件是否完整无损,或者是否被捆绑了其他东西. MD5值是一个公钥,基本上,它是不可逆运算的.

宝鸡市18561732728: 求Java的MD5加密解密实现类. 要实现对用户的密码进行加密! 然后验证用户的密码! -
直卖奥麦: import java.security.*; import java.util.logging.Level; import java.util.logging.Logger; public class md5{ public String md5(String str) { String s=str; if(s==null){ return ""; }else{ String value = null; MessageDigest md5 = null; try { md5 = MessageDigest....

宝鸡市18561732728: 在VB里面如何验证经过MD5加密的数据库密码 -
直卖奥麦: 在网上找一段VB的 MD5 的编码类,假设类名为 Encode,编码函数:MD5(),数据库路径为: c:\test.mdb ,表名为 user ,字段用户名,密码: username,password,代码如下: Dim nConn as object Dim nRs as Object Dim md5instance as ...

宝鸡市18561732728: 关于MD5加密算法 -
直卖奥麦: MD5并不是一种加密算法,而是hash函数算法,hash函数与加密算法的区别在于:第一,前者可以不用密钥,后者必须使用密钥;第二,前者不能倒回去,就是说由计算结果不能得出原先的明文,而后者必须能倒回去;第三,前者输入与输出长度不同,且输出长度明显小于输入长度,因此又称为消息摘要,后者一般输入与输出长度相同.下面说一下暴力破解MD5的问题,由于MD5是消息摘要算法,不同的输入可以产生相同的输出,因此反过来查是无法得到唯一确定的原码的.另外,从理论上讲,MD5的输入可以有无限多个.

宝鸡市18561732728: Md5是什么?MD5怎么校验?Md5校验工具怎么用 -
直卖奥麦: 经过网上查阅相关的说明原来,MD5全名Message-Digest Algorithm 5(信息-摘要算法)是一种不可逆的加密算法.那么MD5校验又是怎么回事呢?一般软件或者说文件都有自己的固定文件格式或者架构信息,说简单一点就是.”世界上没有...

宝鸡市18561732728: MD5验证是什么啊 -
直卖奥麦: 就好比每个人的指纹都是唯一的一样,文件的MD5值也是唯一的,效验MD5就是用来确保文件在传输过程中未被修改用的 有的网站在提供下载的同时还提供MD5值,你可以去下一个MD5效验工具,这样下别的东西完成后,就可以效验一下

宝鸡市18561732728: 系统的 MD5验证码 是什么意思?干什么用的 -
直卖奥麦: MD5在论坛上、软件发布时经常用,是为了保证文件的正确性,防止一些人盗用程序,加些木马或者篡改版权,设计的一套验证系统.每个文件都可以用MD5验证程序算出一个固定的MD5...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网