问题描述
<ahref="../job/news.aspx?id=<%#DataBinder.Eval(Container.DataItem,"id")%>"target="_blank">我想对id进行MD5加密,到news.aspx页面解密,怎么做啊?各位帮帮忙啊!
解决方案
解决方案二:
对字符串string1加密:stringstr1=System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(string1,"SHA1")或者System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(string,"md5")到news.aspx页面解密,可以对string2再加密得到str2,然后比较str1==str2
解决方案三:
如果想正向解密的话,使用des
解决方案四:
用这个吧在引用usingSystem.Security.Cryptography;conststringKEY_64="VavicApp";//注意了,是8个字符,64位conststringIV_64="VavicApp";publicstringEncode(stringdata){byte[]byKey=System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);byte[]byIV=System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);DESCryptoServiceProvidercryptoProvider=newDESCryptoServiceProvider();inti=cryptoProvider.KeySize;MemoryStreamms=newMemoryStream();CryptoStreamcst=newCryptoStream(ms,cryptoProvider.CreateEncryptor(byKey,byIV),CryptoStreamMode.Write);StreamWritersw=newStreamWriter(cst);sw.Write(data);sw.Flush();cst.FlushFinalBlock();sw.Flush();returnConvert.ToBase64String(ms.GetBuffer(),0,(int)ms.Length);}publicstringDecode(stringdata)//解密{byte[]byKey=System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);byte[]byIV=System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);byte[]byEnc;try{byEnc=Convert.FromBase64String(data);}catch{returnnull;}DESCryptoServiceProvidercryptoProvider=newDESCryptoServiceProvider();MemoryStreamms=newMemoryStream(byEnc);CryptoStreamcst=newCryptoStream(ms,cryptoProvider.CreateDecryptor(byKey,byIV),CryptoStreamMode.Read);StreamReadersr=newStreamReader(cst);returnsr.ReadToEnd();}
解决方案五:
<ahref="../job/news.aspx?id=<%#DataBinder.Eval(Container.DataItem,"id")%>"target="_blank">id=<%#DataBinder.Eval(Container.DataItem,"id")%>改为:DataBinder.Eval(Container.DataItem,"id")id=<%#System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(DataBinder.Eval(Container.DataItem,"id").ToString(),"md5")%>"
解决方案六:
不要考虑用MD5加密,MD5是不可逆的,也就是不能解密用别的加密方法,比如DES参考一下:http://blog.csdn.net/jjhua/archive/2007/10/28/1850469.aspx
解决方案七:
MD5不可逆