Sending variables via URLs can be very dangerous if some sensitive data needs to be transferred between your pages. You may want to encrypt your variables and their values. By using these simple encode/decode algorithms, you can hide your content from curious eyes.
C#
Decode:
public string Decode(string token) { string functionReturnValue = ""; int x = 0; int y = 0; string abfrom = ""; string abto = ""; for (x = 0; x <= 25; x++) { abfrom = abfrom + ((char)(65 + x)).ToString(); } for (x = 0; x <= 25; x++) { abfrom = abfrom + ((char)(97 + x)).ToString(); } for (x = 0; x <= 9; x++) { abfrom = abfrom + Convert.ToString(x); } abto = abfrom.Substring(16, abfrom.Length - 16) + abfrom.Substring(0, 16); for (x = 0; x < token.Length; x++) { y = abto.IndexOf(token.Substring(x, 1)); if (y == 0) { functionReturnValue = functionReturnValue + token.Substring(x, 1); } else { functionReturnValue = functionReturnValue + abfrom.Substring(y, 1); } } return functionReturnValue; }
Encode:
public string Encode(string username) { string functionReturnValue = ""; int x = 0; int y = 0; string abfrom = ""; string abto = ""; for (x = 0; x <= 25; x++) { abfrom = abfrom + ((char)(65 + x)).ToString(); } for (x = 0; x <= 25; x++) { abfrom = abfrom + ((char)(97 + x)).ToString(); } for (x = 0; x <= 9; x++) { abfrom = abfrom + Convert.ToString(x); } abto = abfrom.Substring(16, abfrom.Length - 16) + abfrom.Substring(0, 16); for (x = 0; x < username.Length; x++) { y = abfrom.IndexOf(username.Substring(x, 1)); if (y < 0) { functionReturnValue = functionReturnValue + username.Substring(x, 1); } else { functionReturnValue = functionReturnValue + abto.Substring(y, 1); } } return functionReturnValue; }
Example:
sField = Decode(Request.QueryString[0]); response.Redirect("Nextpage.aspx?sParm=" + Encode(sData));
VBScript
Decode:
' USE: sField = Decode(request.querystring(encode("sParm"))) Function Decode(sIn) Dim x, y, abfrom, abto Decode = "" : abfrom = "" For x = 0 To 25 : abfrom = abfrom & Chr(65 + x) : Next For x = 0 To 25 : abfrom = abfrom & Chr(97 + x) : Next For x = 0 To 9 : abfrom = abfrom & CStr(x) : Next abto = Mid(abfrom, 17, Len(abfrom) - 16) & Left(abfrom, 16) For x = 1 To Len(sIn) : y = InStr(abto, Mid(sIn, x, 1)) If y = 0 Then Decode = Decode & Mid(sIn, x, 1) Else Decode = Decode & Mid(abfrom, y, 1) End If Next End Function
Encode:
' USE: location.href="nextpage.asp?" & encode("sParm=" & sData) Function Encode(sIn) Response.Write "sIn: " & sIn Dim x, y, abfrom, abto Encode = "" : abfrom = "" For x = 0 To 25 : abfrom = abfrom & Chr(65 + x) : Next Response.Write "ABFrom 1: " & abfrom For x = 0 To 25 : abfrom = abfrom & Chr(97 + x) : Next Response.Write "ABFrom 2: " & abfrom For x = 0 To 9 : abfrom = abfrom & CStr(x) : Next Response.Write "ABFrom 3: " & abfrom abto = Mid(abfrom, 17, Len(abfrom) - 16) & Left(abfrom, 16) Response.Write "abto: " & abto For x = 1 To Len(sIn) : y = InStr(abfrom, Mid(sIn, x, 1)) Response.Write "y: " & y If y = 0 Then Encode = Encode & Mid(sIn, x, 1) Else Encode = Encode & Mid(abto, y, 1) End If Next Response.Write "Encode: " & Encode End Function
Example:
Response.Redirect ("targetPage.aspx?" & encode("productID=" & ArrID)) var productID= Decode(querystring(Encode('productID')));
JavaScript
Decode:
function Decode(sIn) { var x, y, abto; var Decode = ""; var ABFrom = ""; for (var x = 0; x <= 25; x++) { ABFrom = ABFrom + String.fromCharCode(65 + x); } for (var x = 0; x <= 25; x++) { ABFrom = ABFrom + String.fromCharCode(97 + x); } for (var x = 0; x <= 9; x++) { ABFrom = ABFrom + x.toString(); } abto = ABFrom.toString().substring(16, ABFrom.length) + ABFrom.toString().substring(0, 16); for (x = 0; x < sIn.length; x++) { if (sIn.substring(x, x + 1) == "/") { Decode = Decode + "/"; } else { y = abto.toString().indexOf(sIn.substring(x, x + 1)); if (y < 0) { Decode = Decode + sIn.substring(x, x + 1); } else { Decode = Decode + ABFrom.substring(y, y + 1); } } } return Decode; }
Encode:
function Encode(sIn) { var x, y, abto; var Encode = ""; var ABFrom = ""; for (var x = 0; x <= 25; x++) { ABFrom = ABFrom + String.fromCharCode(65 + x); } for (var x = 0; x <= 25; x++) { ABFrom = ABFrom + String.fromCharCode(97 + x); } for (var x = 0; x <= 9; x++) { ABFrom = ABFrom + x.toString(); } abto = ABFrom.toString().substring(16, ABFrom.length) + ABFrom.toString().substring(0, 16); for (x = 0; x < sIn.length; x++) { y = ABFrom.toString().indexOf(sIn.substring(x, x + 1)); if (y < 0) { Encode = Encode + sIn.substring(x, x + 1); } else { Encode = Encode + abto.substring(y, y + 1); } } return Encode; }
Example:
var productID = Decode(querystring(Encode('productID'))).toString();