很多时候,我们需要访问一个页面或者方法,参数不得不放在url上 。 为了防止有人恶意修改ulr地址参数,我们可以使用MD5码加密。
MD5是非逆转的哦!
实现MD5码的步骤:
一. 需要引入命名空间:
using System.Security.Cryptography;
二. 代码
var str=" 需要加密字符串 " ;
MD5 md5 = new MD5CryptoServiceProvider();
string newP = BitConverter.ToString(md5.ComputeHash(Encoding.Default.GetBytes(str)), 4, 8);
newP = newP.Replace("-", "");
然后 newP就是加密后的字符串了。
我们可以用ajax把参数字符串传到一个方法进行加密, 然后返回加密过的参数(字符串),在把参数 和加密后的参数(字符串)都传递到需要访问的页面。
进入该页面, 因为md5加密是不能逆转的,所以我们可以把参数加密,然后和之前加密过的参数(字符串)进行对比。如果 != 那么就是地址栏参数被修改过。
/// <summary> /// 将字符串进行MD5编码 /// </summary> /// <param name="str">待编码的字符串</param> /// <returns></returns> public static string EncryptString(string str) { MD5 md5 = MD5.Create(); // 将字符串转换成字节数组 byte[] byteOld = Encoding.UTF8.GetBytes(str); // 调用加密方法 byte[] byteNew = md5.ComputeHash(byteOld); // 将加密结果转换为字符串 StringBuilder sb = new StringBuilder(); foreach (byte b in byteNew) { // 将字节转换成16进制表示的字符串, sb.Append(b.ToString("x2")); } // 返回加密的字符串 return sb.ToString(); }