title: How best to scramble or otherwise hide get query string values in C# ASP.Net?
body: <p>I'm working in C# ASP.Net and I want to hide GET values so that users cannot tinker with them. I need this because I'm creating a mechanism to allow for redirecting a POST back to a GET request, to enable browser back button navigation. </p>
  
  <p>My first thought was to stash values in Session, but that seems against best practices for Session use. </p>
  
  <p>What I'm trying to do now is to encrypt the query string and then use the encrypted string in the GET request. The problem is that the encrypted string is extremely long (1000+ charters), when the decrypted string is only about 30 characters.</p>
  
  <p>The encryption logic I took from the MSDN here <a href="http://msdn.microsoft.com/en-us/library/system.security.cryptography.rsacryptoserviceprovider.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/system.security.cryptography.rsacryptoserviceprovider.aspx</a></p>
  
  <p>Is there a way I can do this to get a shorter encrypted string?</p>
  
  <p>Or, is there just a better way to do this in general? </p>