//public byte[] key = { 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8 }; /// <summary> /// Url加密 /// </summary> /// <param name="str"></param> /// <returns></returns> public string URLEncrypto(string str) { SymmetricAlgorithm sa = Rijndael.Create(); sa.Key = key; sa.Mode = CipherMode.ECB; sa.Padding = PaddingMode.Zeros; MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, sa.CreateEncryptor(), CryptoStreamMode.Write); byte[] b = Encoding.Unicode.GetBytes(str); cs.Write(b, 0, b.Length); cs.FlushFinalBlock(); cs.Close(); return HttpUtility.UrlEncode(Encoding.Default.GetBytes(Convert.ToBase64String(ms.ToArray()))); } public string UrlDecrypto(string str) { SymmetricAlgorithm sa = Rijndael.Create(); sa.Key = key; sa.Mode = CipherMode.ECB; sa.Padding = PaddingMode.Zeros; byte[] b = Convert.FromBase64String(str); MemoryStream ms = new MemoryStream(b); CryptoStream cs = new CryptoStream(ms, sa.CreateDecryptor(), CryptoStreamMode.Read); StreamReader sr = new StreamReader(cs, Encoding.Unicode); return sr.ReadToEnd(); }
转载于:https://blog.51cto.com/962410314/1536846