我面临一个奇怪的问题:
我正在加密cookie的内容.
当我在Visual Studio中运行它时,我的代码工作正常,但给我一个"错误的请求,HTTP错误400.请求形成错误." 当我从服务器运行它.
以下是加密类Cookqs的加密类,位于app_code中:
public class EncryptCook
{
public EncryptCook()
{
//
// TODO: Add constructor logic here
//
}
public string EncryptString(string data)
{
try
{
string encryptString = "";
if (data != "")
{
char a;
int key = Convert.ToInt16(DateTime.Now.Day);
int j = 0;
for (int i = 0; i < data.Length; i++)
{
j = (int)data[i];
j = j + key;
a = (char)j;
encryptString = encryptString + Convert.ToString(a);
}
}
return encryptString;
}
catch
{
return "";
}
}
public string DeEncryptString(string data)
{
try
{
string encryptString = "";
if (data != "")
{
char a;
int j = 0;
int key = Convert.ToInt16(DateTime.Now.Day);
for (int i = 0; i < data.Length; i++)
{
j = (int)data[i];
j = j - key;
a = (char)j;
encryptString = encryptString + Convert.ToString(a);
}
}
return encryptString;
}
catch
{
return "";
}
}
Run Code Online (Sandbox Code Playgroud)
很简单,它需要一个字符串,从中提取字符并用另一个字符替换字符,例如,给定"a"并且今天的日期是13,它将用"a"之后的第13个字符替换它,即" M".
这是我的登录控件:
protected void Button1_Click(object sender, EventArgs e)
{
//code for retrieving user, which works fine
EncCook cook=new EncCook();
HttpCookie cookie = new HttpCookie("loginstatus");
cookie["userid"] =cook.EncryptString(name);
cookie["username"] = cook.EncryptString(doctor);
cookie["email"] = cook.EncryptString(email);
cookie["address"] = cook.EncryptString(address);
Response.Cookies.Add(cookie);
}
好吧,这个代码在本地机器上工作正常,但是给我一个"错误请求HTTP错误400.请求形成错误." 错误.
我认为这是因为编码,但我不确定,就像今天的20,那么〜+ 20看起来像一个盒子角色.
谢谢
请不要使用自制加密.它只会以尴尬而告终.如果你捕获异常,你应该重新抛出它或返回null,而不是空字符串.该错误可能是因为您所谓的加密正在创建在当前字符集中无效的字节序列.
| 归档时间: |
|
| 查看次数: |
968 次 |
| 最近记录: |