当前位置: 首页 > 编程语言 > C#

C#LearningTutorial-EncryptedQueryString,IncludingKeyShare

时间:2023-04-10 13:12:10 C#

EncryptedQueryString,IncludingKey示例,但问题是我的KEYS详细说明了查询字符串,然后将所有整数转换为字符串值。有没有办法在ASP.NET中加密整个查询字符串,包括键和键值?类似于:Default.aspx?value1=40&value2=30&value3=20到Default.aspx?56sdf78fgh90sdf4564k34klog5646l谢谢!网上有很多例子。其中一些是:如何在asp.net中加密查询字符串?如何在asp.net中传递加密查询字符串http://www.codeproject.com/Articles/33350/Encrypting-Query-Stringshttp://www.keyvan.ms/how-to-encrypt-query-string-parameters-in-asp-nethttp://forums.asp.net/t/989552.aspx/1现在你说你也喜欢加密密钥,你实际上做的是加密他们所有的url行,你只需要阅读什么在RawUrl后面?并解密。上面的很多参考文献都忽略了一个问题,那就是在返回加密字符串之前URLEncode(返回字符串之前见下文)。我正在使用IIS7.5,它会自动为您解码字符串,因此解密“应该”没有问题。加解密代码如下所示。以上就是C#学习教程:加密查询字符串,包含了密钥共享的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——publicstringEncryptQueryString(stringinputText,stringkey,stringsalt){byte[]plainText=Encoding.UTF8.GetBytes(输入文本);使用(RijndaelManagedrijndaelCipher=newRijndaelManaged()){PasswordDeriveBytessecretKey=newPasswordDeriveBytes(Encoding.ASCII.GetBytes(key),Encoding.ASCII());使用(ICryptoTransform加密器=rijndaelCipher.CreateEncryptor(secretKey.GetBytes(32),secretKey.GetBytes(16))){使用(MemoryStreammemoryStream=newMemoryStream()){使用(CryptoStreamcryptoStream=newCryptoStream,cryptoStream,CryptoStreamMode.Write)){cryptoStream.Write(plainText,0,plainText.Length);cryptoStream.FlushFinalBlock();stringbase64=Convert.ToBase64String(memoryStream.ToArray());//生成一个在作为查询字符串传递时不会搞砸的字符串。字符串urlEncoded=HttpUtility.UrlEncode(base64);返回网址编码d;}}}}}publicstringDecryptQueryString(stringinputText,stringkey,stringsalt){byte[]encryptedData=Convert.FromBase64String(inputText);PasswordDeriveBytessecretKey=newPasswordDeriveBytes(Encoding.ASCII.GetBytes(key),EncodingASCII.GetBytes(salt));使用(RijndaelManagedrijndaelCipher=newRijndaelManaged()){使用(ICryptoTransformdecryptor=rijndaelCipher.CreateDecryptor(secretKey.GetBytes(32),secretKey.GetBytes(16))){使用(MemoryStremenewMemoryStream(encryptedData)){使用(CryptoStreamcryptoStream=newCryptoStream(memoryStream,decryptor,CryptoStreamMode.Read)){byte[]plainText=newbyte[encryptedData.Length];cryptoStream.Read(plainText,0,plainText.Length);字符串utf8=Encoding.UTF8.GetString(纯文本);返回utf8;}}}}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: