目前我有一个关于登陆、注销的需求,不太知道该如何做,求思路 需求cookie加密url技术 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可以用一个秘钥加密,解密的时候凭这个秘钥解密就行了/// <summary> /// 加密数据 /// </summary> /// <param name="Text"></param> /// <param name="sKey"></param> /// <returns></returns> public static string Encrypt(string Text, string sKey) { DESCryptoServiceProvider des = new DESCryptoServiceProvider(); byte[] inputByteArray; inputByteArray = Encoding.Default.GetBytes(Text); des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); System.IO.MemoryStream ms = new System.IO.MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); StringBuilder ret = new StringBuilder(); foreach (byte b in ms.ToArray()) { ret.AppendFormat("{0:X2}", b); } return ret.ToString(); } /// <summary> /// 解密数据 /// </summary> /// <param name="Text"></param> /// <param name="sKey"></param> /// <returns></returns> public static string Decrypt(string Text, string sKey) { DESCryptoServiceProvider des = new DESCryptoServiceProvider(); int len; len = Text.Length / 2; byte[] inputByteArray = new byte[len]; int x, i; for (x = 0; x < len; x++) { i = Convert.ToInt32(Text.Substring(x * 2, 2), 16); inputByteArray[x] = (byte)i; } des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); System.IO.MemoryStream ms = new System.IO.MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); return Encoding.Default.GetString(ms.ToArray()); }那个什么接口,当用户点击注销的时候,把这个cookie的时效设置过期不就行了? 我也是那么想的,不过他专门给了一个URL地址,说每次注销的时候访问这个链接,就可以实现注销。所以,肯定要按照他的需求来做。所以,我不知道这个链接应该是什么?一个网页?还是一段代码?在这里需要做什么? 学习学习,可不可以使用user的model,登陆之后,将客户的数据存储到数据库里,退出的时候,设置session过期 那你问他,这个url要传什么参数过去,或者要一份这个url的代码啊...或者问一下 把登陆写到cookie里面 具体要怎么弄,那随便发一个网址,谁懂里面搞什么东西 网址访问不了。问一下你们后台是用什么语言做的?一般就算是加密了,也不会把账号和密码存到cookie的,只会存账号吧。你说的注销接口需要传什么参数没有?我感觉那像一个RESTful API,把账号传过去,后台就执行让账号注销的逻辑处理。 网址访问不了。问一下你们后台是用什么语言做的?一般就算是加密了,也不会把账号和密码存到cookie的,只会存账号吧。你说的注销接口需要传什么参数没有?我感觉那像一个RESTful API,把账号传过去,后台就执行让账号注销的逻辑处理。 你好。大概是这样:后台我用的是CGI,一种比较老的技术,上头要求的,然后是shell脚本写的。因为公司的板子上没有PHP,也没有jvm,所以PHP和JAVA都排除了。如果是C的话,需要用交叉编译工具,麻烦,所以选择了shell脚本。我没有做过登陆和注销的东西,甚至连网页都很少做,所以,能给个思路不。你 感觉,大概应该是如何做?用什么技术,我调研一下下~~谢谢啦 你好。大概是这样:后台我用的是CGI,一种比较老的技术,上头要求的,然后是shell脚本写的。因为公司的板子上没有PHP,也没有jvm,所以PHP和JAVA都排除了。如果是C的话,需要用交叉编译工具,麻烦,所以选择了shell脚本。我没有做过登陆和注销的东西,甚至连网页都很少做,所以,能给个思路不。你 感觉,大概应该是如何做?用什么技术,我调研一下下~~谢谢啦 你好。大概是这样:后台我用的是CGI,一种比较老的技术,上头要求的,然后是shell脚本写的。因为公司的板子上没有PHP,也没有jvm,所以PHP和JAVA都排除了。如果是C的话,需要用交叉编译工具,麻烦,所以选择了shell脚本。我没有做过登陆和注销的东西,甚至连网页都很少做,所以,能给个思路不。你 感觉,大概应该是如何做?用什么技术,我调研一下下~~谢谢啦 你对cookie的理解是错的。所有的书上都写着cookie中是不能保存密码这类信息的。当验证成功后,你在服务器端向客户端发放一个cookie,也就是响应头Set-Cookie:cookieName=cookieValue这样的格式,服务器编程语言都会提供这类api,不用向上面这样写。浏览器接收cookie后,如果是持久的,则保存到硬盘,如果是会话型cookie则保存在浏览器进程中(关闭进程下次登录就没有了)持久性cookie如果没有过期,且cookie的domain与请求的域相同,path相同,则会在请求过程中以Cookie请求头的形式发送到服务器端,服务器端判断该Cookie的cookieName是否存在,如果存在,则可以认为用户是登录用户再解析CookieValue中的内容,如果用户ID,这个用户ID出于安全考虑可以加密。 cookie中存用户名密码那是记住密码功能吧?登录状态应该另外是个cookie吧?我现在弄得东西比较简单,安全度要求不高,所以我就把id记下来,cookie只有个已登录状态,以后发送请求的时候带上id作为参数,服务器端验证下。没cookie时自动跳转到登陆界面 求助:下面的程序无法正常运行,do……loop中 js extjs如何将数组提交到后台? 模式窗口中的表单能否直接提交到父窗口中去? 高手请进!!!300分求助如何实现一个非常强大的拖拉式javascript地图编辑平台设计的问题!!! 文本框颜色 页面的跳转 如何把256,256,256这样的颜色的值转换为#00000这样的值? 首页弹出一个小窗口,如何在小窗口里刷新或关闭首页? 使用easyui 当在页面中插入fpspread出现错误 急求一个JQ在火狐浏览器中不管用的解决方法 在线等 zClip (ZeroClipboard)复制一个页面中有几百个元素问题求助
/// <summary>
/// 加密数据
/// </summary>
/// <param name="Text"></param>
/// <param name="sKey"></param>
/// <returns></returns>
public static string Encrypt(string Text, string sKey)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray;
inputByteArray = Encoding.Default.GetBytes(Text);
des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
System.IO.MemoryStream ms = new System.IO.MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
StringBuilder ret = new StringBuilder();
foreach (byte b in ms.ToArray())
{
ret.AppendFormat("{0:X2}", b);
}
return ret.ToString();
}
/// <summary>
/// 解密数据
/// </summary>
/// <param name="Text"></param>
/// <param name="sKey"></param>
/// <returns></returns>
public static string Decrypt(string Text, string sKey)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
int len;
len = Text.Length / 2;
byte[] inputByteArray = new byte[len];
int x, i;
for (x = 0; x < len; x++)
{
i = Convert.ToInt32(Text.Substring(x * 2, 2), 16);
inputByteArray[x] = (byte)i;
}
des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
System.IO.MemoryStream ms = new System.IO.MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
return Encoding.Default.GetString(ms.ToArray());
}
那个什么接口,当用户点击注销的时候,把这个cookie的时效设置过期不就行了?
所以,肯定要按照他的需求来做。
所以,我不知道这个链接应该是什么?一个网页?还是一段代码?在这里需要做什么?
或者问一下 把登陆写到cookie里面 具体要怎么弄,那随便发一个网址,谁懂里面搞什么东西
大概是这样:
后台我用的是CGI,一种比较老的技术,上头要求的,然后是shell脚本写的。
因为公司的板子上没有PHP,也没有jvm,所以PHP和JAVA都排除了。如果是C的话,需要用交叉编译工具,麻烦,所以选择了shell脚本。我没有做过登陆和注销的东西,甚至连网页都很少做,所以,能给个思路不。
你 感觉,大概应该是如何做?用什么技术,我调研一下下~~谢谢啦
大概是这样:
后台我用的是CGI,一种比较老的技术,上头要求的,然后是shell脚本写的。
因为公司的板子上没有PHP,也没有jvm,所以PHP和JAVA都排除了。如果是C的话,需要用交叉编译工具,麻烦,所以选择了shell脚本。我没有做过登陆和注销的东西,甚至连网页都很少做,所以,能给个思路不。
你 感觉,大概应该是如何做?用什么技术,我调研一下下~~谢谢啦
大概是这样:
后台我用的是CGI,一种比较老的技术,上头要求的,然后是shell脚本写的。
因为公司的板子上没有PHP,也没有jvm,所以PHP和JAVA都排除了。如果是C的话,需要用交叉编译工具,麻烦,所以选择了shell脚本。我没有做过登陆和注销的东西,甚至连网页都很少做,所以,能给个思路不。
你 感觉,大概应该是如何做?用什么技术,我调研一下下~~谢谢啦
当验证成功后,你在服务器端向客户端发放一个cookie,也就是响应头Set-Cookie:cookieName=cookieValue
这样的格式,服务器编程语言都会提供这类api,不用向上面这样写。浏览器接收cookie后,如果是持久的,则保存到硬盘,如果是会话型cookie则保存在浏览器进程中(关闭进程下次登录就没有了)
持久性cookie如果没有过期,且cookie的domain与请求的域相同,path相同,则会在请求过程中以Cookie请求头的形式发送到服务器端,服务器端判断该Cookie的cookieName是否存在,如果存在,则可以认为用户是登录用户
再解析CookieValue中的内容,如果用户ID,这个用户ID出于安全考虑可以加密。
我现在弄得东西比较简单,安全度要求不高,所以我就把id记下来,cookie只有个已登录状态,以后发送请求的时候带上id作为参数,服务器端验证下。没cookie时自动跳转到登陆界面