问题描述
是否可以解密由 md5 生成的哈希?
示例:我想开发一个使用 md5 散列输入的系统。
它将是一个笔记系统,所以我想查看使用 the 100 step,train cost is: nan
the 200 step,train cost is: nan
the 300 step,train cost is: nan
the 400 step,train cost is: nan
the 500 step,train cost is: nan
the 600 step,train cost is: nan
the 700 step,train cost is: nan
the 800 step,train cost is: nan
the 900 step,train cost is: nan
the 1000 step,train cost is: nan
the 1100 step,train cost is: nan
the 1200 step,train cost is: nan
the 1300 step,train cost is: nan
the 1400 step,train cost is: nan
the 1500 step,train cost is: nan
the 1600 step,train cost is: nan
the 1700 step,train cost is: nan
the 1800 step,train cost is: nan
the 1900 step,train cost is: nan
the 2000 step,train cost is: nan
the 2100 step,train cost is: nan
the 2200 step,train cost is: nan
the 2300 step,train cost is: nan
the 2400 step,train cost is: nan
the 2500 step,train cost is: nan
the 2600 step,train cost is: nan
the 2700 step,train cost is: nan
the 2800 step,train cost is: nan
the 2900 step,train cost is: nan
the 3000 step,train cost is: nan
the 3100 step,train cost is: nan
the 3200 step,train cost is: nan
执行此操作的 txt 文件。
加密过程是这样的:
fopen()
fwrite ( $handle,md5($input) );
是 $input
。
任何人都可以帮助打开笔记的解密版本吗?最好的问候,
PS: 备注系统是用来交换信息的,所以需要别人审核。
解决方法
没有。 MD5 不是 encryption 函数,而是 hashing 函数。哈希函数是有损的。你不能从散列回到原始状态。这就是为什么它们经常被用来存储密码的哈希值;您可以存储散列,而不必担心如果您的数据库遭到破坏,您会泄露人们使用过的密码。拥有密码的散列对攻击者来说并不是那么有用(而拥有实际密码则是为了在其他服务上尝试它,因为人们会重复使用它们)。
,不,Md5 是一个 Hash 函数
从数学的角度来看:
-
加密 函数是内射(一对一)并且可以还原。这样密码就可以破译了。
散列函数非内射(每个输出都可能由多个输入产生)并且不能还原。 >