Hov vent. Kan ikke få det her til at virke. Det jeg gør er, at redirecte til siden selv med den krypterede var og derefter dekryptere den og aflæse den.
Min code behond til min test-fil:
private String qString
{
get {
if (Request.QueryString["var"] == null)
{
return null;
} else {
return Request.QueryString["var"];
}
}
}
public void Page_Load(Object o, EventArgs e)
{
if (qString != null)
{
txtInput.Text = KrypteringsMetoder.DekrypterEmailAdresse(qString);
}
}
protected void btnGo_Click(object sender, EventArgs e)
{
Response.Redirect("Default.aspx?var=" + KrypteringsMetoder.KrypterEmailAdress(txtInput.Text));
}
Min html:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="test_Default" %>
<html xmlns="
http://www.w3.org/1999/xhtml"><head>
<title></title>
</head>
<body>
<form runat="server">
<asp:TextBox runat="server" ID="txtInput"></asp:TextBox>
<asp:Button runat="server" Text="Button" ID="btnGo" OnClick="btnGo_Click" />
<asp:Label ID="lblOutput" runat="server" Text="Label"></asp:Label>
</form>
</body>
</html>
Min krypteringsmetoder:
public static String KrypterEmailAdresse(String tekst)
{
if (tekst.Length > 0)
{
Encoding utf = new UTF8Encoding();
DES des = new DESCryptoServiceProvider();
byte[] key = utf.GetBytes("james007");//krypteringsnøglen
byte[] iv = { 1, 2, 3, 4, 5, 6, 7, 8 };
ICryptoTransform encrypt = des.CreateEncryptor(key, iv);
byte[] cipher = encrypt.TransformFinalBlock(utf.GetBytes(tekst), 0, utf.GetByteCount(tekst));
string krypteret = Convert.ToBase64String(cipher);
//Omdan til kode, som kan sendes som URL
krypteret = HttpUtility.HtmlEncode(krypteret);
return krypteret;
}
else {
return tekst;
}
}
public static String DekrypterEmailAdresse(String krypteret)
{
if (krypteret.Length > 0)
{
krypteret = HttpUtility.HtmlDecode(krypteret);
Encoding utf = new UTF8Encoding();
DES des = new DESCryptoServiceProvider();
byte[] key = utf.GetBytes("james007");//krypteringsnøglen
byte[] iv = { 1, 2, 3, 4, 5, 6, 7, 8 };
ICryptoTransform decrypt = des.CreateDecryptor(key, iv);
byte[] cipher = Convert.FromBase64String(krypteret);
String tekst = utf.GetString(decrypt.TransformFinalBlock(cipher, 0, cipher.Length));
return tekst;
}
else {
return "";
}
}