求 查询字符串的加密方法。

paul_C 2009-08-10 03:56:31

比如 csdn的 http://so.csdn.net/bbsSearchResult.aspx?q=%E7%9A%84%E8%90%A8%E8%8A%AC%E7%9A%84

怎么加密q值?

都有哪些方法

要能解密的!!

谢谢
...全文
187 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
love_cloud 2009-08-10
  • 打赏
  • 举报
回复
没闹过 给你顶个 别沉了
feitianchong 2009-08-10
  • 打赏
  • 举报
回复
        #region 对称加密(可解密)
//定义用于对称加密的常量
private const string SYMMETRICKEY = "Guz(%&hj7x89H$yuBI0456FtmaT5&fvHUFCy76*h%(HilJ$lhj!y6&(*jkP87jH7";
private const string SYMMETRICTEMPKEY = "E4ghj*Ghg7!rNIfb&95GUY86GfghUb#er57HBh(u%g6HJ($jhWk7&!hg4ui%$hjk";
//定义成员变量
private static SymmetricAlgorithm mobjCryptoService;
private static string Key;

private static void InitializeKey()
{
mobjCryptoService = new RijndaelManaged();
//初始化密钥
Key = SYMMETRICKEY;
}

/// <summary>
/// 取得加密密钥
/// </summary>
/// <returns>返回密钥</returns>
private static byte[] GetLegalKey()
{
string sTemp = Key;
mobjCryptoService.GenerateKey();
byte[] bytTemp = mobjCryptoService.Key;
int KeyLength = bytTemp.Length;
if (sTemp.Length > KeyLength)
sTemp = sTemp.Substring(0, KeyLength);
else if (sTemp.Length < KeyLength)
sTemp = sTemp.PadRight(KeyLength, ' ');
return ASCIIEncoding.ASCII.GetBytes(sTemp);
}

/// <summary>
/// 获得用于加密的初始向量
/// </summary>
/// <returns>返回初试向量</returns>
private static byte[] GetLegalIV()
{
string sTemp = SYMMETRICTEMPKEY;
mobjCryptoService.GenerateIV();
byte[] bytTemp = mobjCryptoService.IV;
int IVLength = bytTemp.Length;
if (sTemp.Length > IVLength)
sTemp = sTemp.Substring(0, IVLength);
else if (sTemp.Length < IVLength)
sTemp = sTemp.PadRight(IVLength, ' ');
return ASCIIEncoding.ASCII.GetBytes(sTemp);
}

/// <summary>
/// 功能:对称加密算法
/// 作者:木木
/// 日期:2005-11-20
/// 更改者:
/// 更改日期:
/// </summary>
/// <param name="Source">待加密的数据,必须转化未字符传</param>
/// <returns>经过加密的数据</returns>
public static string fEncrypData(string Source)
{
InitializeKey();
byte[] bytIn = UTF8Encoding.UTF8.GetBytes(Source);
MemoryStream ms = new MemoryStream();
mobjCryptoService.Key = GetLegalKey();
mobjCryptoService.IV = GetLegalIV();
ICryptoTransform encrypto = mobjCryptoService.CreateEncryptor();
CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Write);
cs.Write(bytIn, 0, bytIn.Length);
cs.FlushFinalBlock();
ms.Close();
byte[] bytOut = ms.ToArray();
return Convert.ToBase64String(bytOut);
}
/// <summary>
/// 功能:对称解密算法
/// 作者:木木
/// 日期:2005-11-20
/// 更改者:
/// 更改日期:
/// </summary>
/// <param name="Source">待解密的数据</param>
/// <returns>解密后的数据</returns>
public static string fDecryptData(string Source)
{
InitializeKey();
byte[] bytIn = Convert.FromBase64String(Source);
MemoryStream ms = new MemoryStream(bytIn, 0, bytIn.Length);
mobjCryptoService.Key = GetLegalKey();
mobjCryptoService.IV = GetLegalIV();
ICryptoTransform encrypto = mobjCryptoService.CreateDecryptor();
CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Read);
StreamReader sr = new StreamReader(cs);
return sr.ReadToEnd();
}
#endregion 对称加密(可解密)
paul_C 2009-08-10
  • 打赏
  • 举报
回复
顶起来啊
paul_C 2009-08-10
  • 打赏
  • 举报
回复
谢谢楼上的,

这个方法不可逆啊,加密了后,如果不是用作比较的话,

我就用不了查询字符串了
杰子 2009-08-10
  • 打赏
  • 举报
回复
我的博客有一个加密的类,你可以看看有用不
http://blog.csdn.net/jiezigege/archive/2009/07/31/4397730.aspx

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧