登录的时候记住用户名密码,目前大多数浏览器本身已经支持这种功能,如果不用浏览器本身的功能,自己来实现呢。
一部分人在前端直接用cookie来保存用户名和密码。这样是不安全的,我们在cookie中可以看到用户名,密码的明文。有些人采用base64对密码进行一下编码,要知道base64是可以解码的。综上直接在前端cookie来存储是不安全的。
下面我聊一下我的一个思路,当用户登录的时候,在服务器端对用户名和密码 进行一次(AES)加密,写入Cookie设置HttpOnly为true.
cookie key:r7NyJSR92M5je value:r7NyJSR92M5jed62qKMesg%3D%3D
value是用户名和密码 用分隔符分开 然后进行AES加密后的值。httponly=true,表示客户端无法对cookie进行修改。
下次进入登录界面之前,解析出cookie中的用户名,以及密码的长度,注意是密码的长度。写一个方法生成相同长度的一个密码字符串(不是真实的密码,仅仅长度相同,例如:****),
private string NewPwd(int length) { StringBuilder builder = new StringBuilder(); for (int i = 0; i < length; i++) { builder.Append("*"); } return builder.ToString(); }
把这个字符串赋值给password控件。
用户名直接明文赋值给username控件即可。这样前端是不会看到密码明文的,因为我们用长度相同的***代替了。
用户登录的时候,判断cookie是否存在,存在取出cookie中的加密用户名密码,进行解密得到用户名密码。比对用户名以及根据密码长度生成的密码串,匹配的话,把前端传来的密码串替换为真实的密码。不匹配就用前端传来的用户名和密码,这样服务端就可以真实登录了。
if (HttpContext.Request.Cookies.TryGetValue(PlatformConstants.RememberPasswordCookieName, out string value)) { string[] up = value.AesDecrypt().Split(PlatformConstants.SplitSeparator); if (up[0] == username && userpwd == NewPwd(up[1].Length)) { //密码赋值为真实解密后的密码 userpwd = up[1]; } }
注意事项:当用户修改密码或取消记住密码的时候 要设置cookie的失效。
相关推荐
网页登录记住用户名密码登录时间的cookies的做法
利用js+Cookie实现的记住用户名、密码功能,简单、实用、无后台繁琐代码,新手亦可看懂。
NULL 博文链接:https://xgtxxxx.iteye.com/blog/1594688
纯servlet编写登陆功能,实现自动登陆、记住密码。展示了cookie和session的用法。注释详细,可以作为今后的参考
登陆界面创建一个复选按钮,通过按钮选取来进行事件处理。若按钮选中记住账号和密码的信息,本文教大家如何使用Android实现记住用户名和密码功能,感兴趣的小伙伴们可以参考一下
C# winform记住密码及自动登陆源码,仿QQ界面设计
记住这些信息,可以使用Cookie来实现,更多Cookie应用,可参考http://jb51.net/article/33590.htm http://jb51.net/article/33591.htm现在我们来模拟一个登录介面: 代码如下: <table> <tr> <td xss=removed> User ...
这段源码直接使用SharedPreferences类。就可以达到保存用户名和密码的功能,代码很短,很容易读懂。移植性很好。
Winform 实现记住密码和自动登录-附件资源
这个程序是一个Android的登陆界面的设计,它实现了如下功能:记住密码,用户输入时有用户名提示选择。还有管理员界面,添加新用户,修改密码。这里使用的是sharedpreferences和数据库两种方式。
目前开发一个项目遇到一个很恶心的问题,本来在登陆界面输入用户名密码后登陆,选择记住密码后,在内容页里面的<input type=”text” id=”userName” />以及<input type=”password” id=”password” /&...
1、登录时勾选记住密码,用cookie保存账号和密码并对密码进行两次加密处理(纯前端),下次登录自动输入账号密码 2、登录时不勾选,清空cookie,下次登录需要输入 效果图: ======================================...
使用Android Studio开发平台,利用SharedPreferences,在登陆时,若用户勾选记住我的复选框,则在本地生成一个文档记录用户名和密码,下次登陆时免去输入用户名和密码直接登陆。
在进行APP+H5混合开发的时候,一些功能是用native方法实现的,如登陆,一些功能是用H5实现的。所以往往需要将在native方法登陆的状态同步到H5中避免再次登陆。这种情况在Android开发中比较常见,因为Android不会自动...
3、提供记住用户名,用户密码,用户自动登录功能,并可以在三种模式下切换。 客户端注册页面实现功能: 1、用户注册,保存注册成功用户数据。 2、检验用户ID,ID只能为字母与数字,不允许中文或其他特殊字符。 3、...
整个过程就是用户在登陆的时候,如果选择了记住密码或者一周内免登陆等这个选项的时候,则在用户成功登陆操作完成之后,存储一个实现自动登录的cookie的数据到数据库的用户表里面,作为下次自动登录时验证用。...
同时页面加载时需要判断之前是否有记住的登陆状态的选项,即查cookie是否存在 存在则在用户名和密码输入框中自动填入cookie用户信息 否则跟第一次访问输入框为空一样 doLogin.jsp 执行login.jsp页面的请求,判断是否...
本小程序实现了一个登陆界面的布置,当用户启动程序时输入用户名和密码,点击记住密码当下次在次启动程序时密码将自动的保留,不用输入。界面比较简单,希望大家可以继续的完善一下。希望能给大家带来帮助。 效果图...
5、另外还用了Cookie实现了记住用户名,方便用户的输入 6、学生登陆成功后,可以修改个人密码,查看考试记录,也可以选择考试 7、界面美观方面,不同的权限显示不同的界面内容 系统后台功能: 个人信息管理 修改...
5、另外还用了Cookie实现了记住用户名,方便用户的输入 6、学生登陆成功后,可以修改个人密码,查看考试记录,也可以选择考试 7、界面美观方面,不同的权限显示不同的界面内容 系统后台功能: 个人信息管理 修改...