MD5解密方法\x0d\x0a我在存储数据库的时候,通过md5加密方法将字段进行加密,当我在读取该字段时如何正确的读取原来的值啊\x0d\x0a------解决方案--------------------\x0d\x0a没办法,MD5是不可逆的。\x0d\x0a你需要使用可逆加密算法。\x0d\x0a------解决方案--------------------\x0d\x0a插入表中的时候md5加密\x0d\x0a比如:\x0d\x0a$sql= "insert into register(names,pswd,repswd) values( '$_POST[names] ',md5( '$_POST[pswd] '),md5( '$_POST[repswd] ')) ";\x0d\x0a$qid=mysql_query($sql);\x0d\x0a读取的时候\x0d\x0a$pswd=empty($_POST[ 'pswd '])? ' ':md5($_POST[ 'pswd ']);\x0d\x0a------解决方案--------------------\x0d\x0a如果业务要求可还原,那么不要采用MD5,请使用可逆加密算法,如DES加密。\x0d\x0aMD5为不可逆散列算法,可用于存储用户密码,存储后不需要永远不需要知道明文。密码比较时只需将用户输入的密码再次转成MD5码与存储的相比较即可得知用户输入密码是否正确。\x0d\x0alinux/unix操作系统一般采用MD5进行用户密码加密。\x0d\x0a------解决方案--------------------\x0d\x0aMD5目前所谓的破解只是采用碰撞法找到了对等因子。\x0d\x0a比如:string1的MD5码为MD1,而现在我们做到的只是又找到了一个string2,它的MD5码也是MD1。\x0d\x0a结果就是:用户登陆某采用MD5加密的系统时,本来密码是12345,现在可能用abcde也能登陆。\x0d\x0a想想可能还原吗?如果可以还原,那天大的信息也能用32位长的字符串表示了,这不成了超级压缩算法了吗,整个宇宙的信息都可以用32位长表示了。不可逆的!
md5的解密方法
!--#include file="inc/md5.asp"--(md5的加密文件)
!--#include file="conn.asp"-- (数据库的连接文件)
%
if request.form("MM_insert") then
if request.form("action")="modpass" then
conn.execute("update [admin] set admin_name=''"MD5(Request("adminname"))"''")
conn.execute("update [admin] set admin_password=''"MD5(Request("adminpwd"))"''")
Response.Write("script language=javascriptalert(''管理员资料设定成功!请删除该文件'');this.top.location.href=''setup.asp'';/script")
end if
end if%
HTMLHEAD
META http-equiv=Content-Type content="text/html; charset=gb2312"
LINK href="inc/admin.css" type=text/css rel=stylesheet
META content="MSHTML 6.00.2800.1126" name=GENERATOR
/headbody
table width="98%" align="center" border="1" cellspacing="0" cellpadding="4" class=lanyubk style="border-collapse: collapse"
form name="form1" method="post" action="setup.asp"
tr
td class=lanyuss align="center"管理员设定程序/td
/tr
tr class=lanyuds
td管理员名称:input type="text" name="adminname" size="30"
/td
/tr
tr class=lanyuds
td管理员密码:input type="text" name="adminpwd" size="30"
/td
/tr
tr class=lanyuqs
td align="center"
input type="submit" name="Submit" value="确定提交"
input type="reset" name="Reset" value="清空重写"
/td
/tr
input type="hidden" name="action" value="modpass"
input type="hidden" name="MM_insert" value="true"
/form
/tablebr
table width="98%" align="center" border="1" cellspacing="0" cellpadding="4" class=lanyubk style="border-collapse: collapse"
form name="form1" method="post" action="setup.asp"
/table
这两行是表名(admin_name=''"MD5(Request("adminname"))"''")像这样
conn.execute("update [admin] set admin_name=''"MD5(Request("adminname"))"''")
conn.execute("update [admin] set admin_password=''"MD5(Request("adminpwd"))"''")
喜欢的话就赶紧采纳~~!
MD5是单向加密的,不管何种数据进行MD5加密都会得到固定长度的字符串,
MD5一般用户文件完整性的校验,也有用来做密码加密的。
想要破解MD5,因其本身的算法不可逆,故只能使用穷举法,也就是不断拼字符串加密和已知的MD5字符串进行比对,这是一个相当大的工程,需要庞大的数据基础。
MD5,简单说就是加密算法,但是不能逆运算,所以不能通过逆向推导出密码,但是可以通过枚举的方法解密,思路就是把各种字符串组合进行加密,然后把原密码和加密密码都存进数据库,要解密的时候就在数据库搜。网上有这些解密网站,你也可以自己弄个这样的数据库