登录的时候记住用户名密码,目前大多数浏览器本身已经支持这种功能,如果不用浏览器本身的功能,自己来实现呢。
一部分人在前端直接用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的做法是指在网页登录时,使用cookies来记住用户名、密码和登录时间,以便下次登录时自动填充用户名和密码,从而提高用户体验。本文将详细介绍使用cookies记住用户名密码...
Javascript实现登录记住用户名和密码功能的核心在于使用Web存储技术,这里主要用到了cookies技术来实现这一需求。在页面加载时,可以通过读取保存在本地的cookies来自动填充表单中的用户名和密码信息,从而达到记住...
在网页应用中,"Cookie记住用户名密码"是一个常见的功能,它允许用户在访问网站时选择保存他们的登录信息,以便下次访问时自动填充,提供便捷的用户体验。这个功能主要依赖于JavaScript和Cookie技术来实现,无需复杂...
在JavaScript(JS)中实现登录时记住用户名的功能是一项常见的需求,尤其在Web应用程序中,它提高了用户体验,使得用户下次访问时无需再次输入用户名。本文将深入探讨如何利用JS实现这一功能,结合`common_util.js`...
在QT中创建一个登录界面,并添加记住用户名和密码的功能,是提高用户体验的重要一环。这个功能允许用户在登录后选择保存他们的凭据,以便在下次打开应用时自动填充,减少了用户输入的步骤。 首先,我们需要创建一个...
在IT行业中,用户认证是网络安全的基本要素之一,而“记住登录时的用户名和密码”功能则是为了提升用户体验而设计的一项常见功能。这个功能允许用户在登录某个网站或应用时保存其登录凭据,以便在下次访问时能够快速...
记住用户名功能则是为了方便用户,减少他们每次登录时输入用户名的步骤。 实现这个功能的过程中,开发人员可能需要以下关键知识点: 1. **SSH框架**:理解Spring Security或Apache Shiro等SSH实现的安全机制,如...
这个源码示例提供了一种实现方式,其设计灵感来源于QQ客户端的用户登录界面,旨在帮助开发者学习如何在自己的应用程序中集成这些特性。下面我们将深入探讨相关知识点。 1. **WinForm控件与布局**: - 使用`Label`...
这个特别的V6.0版本可能通过某种方式实现了这一功能,可能是通过修改源代码或者利用了特定的插件。 在使用能够保存密码的PuTTY版本时,用户应谨慎处理,因为这增加了密码被盗的风险,如果电脑被恶意软件感染或被盗...
6. 当用户选择“记住我”并登录后,下次打开应用时,可以在onCreate()方法中读取SharedPreferences中的用户名和密码,如果存在,可直接跳过登录界面,直接进入主界面。 以上就是关于Android Studio中实现登录界面...
"记住密码"功能是登录界面的一项重要特性,它允许用户在登录时选择保存他们的用户名和密码,以便下次登录时自动填充,提高用户使用的便捷性。在本示例中,我们使用了`SharedPreferences`这个Android内置的轻量级数据...
当用户勾选“记住密码”选项时,需要将用户名和加密后的密码安全地存储在本地。可以使用`test.db`文件作为SQLite数据库存储这些信息,或者使用Windows的注册表。存储时,密码应使用安全的加密算法进行加密,如AES。...
至于批处理脚本如何获取当前用户名,可以通过内置的`%username%`环境变量来实现。这个变量存储了当前活动用户的用户名。在批处理脚本中,我们只需要简单地echo(输出)这个环境变量即可: ```batch @echo off echo ...
在Asp.Net MVC框架中,实现用户登录信息的自动记忆功能,使得用户在下次访问时无需再次输入用户名和密码,主要是通过利用浏览器的Cookie技术来完成。Cookie是一种客户端存储机制,它可以在用户的本地计算机上保存小...
标签“密码登陆”和“登陆_密码”可能是指用户登录时输入的身份验证过程。在Windows系统中,当用户尝试登录时,系统会比较输入的密码与存储的密码哈希进行匹配。如果匹配成功,用户将被授予访问权限。为了增强安全性...
纯servlet编写登陆功能,实现自动登陆、记住密码。展示了cookie和session的用法。注释详细,可以作为今后的参考
在MFC中,我们可以利用对话框类(CDialog)来创建登录界面,通过添加控件如编辑框(CEdit)来实现用户输入用户名和密码的功能。 首先,我们需要创建一个新的MFC对话框项目。在VC6中,选择“文件” -> “新建”,...
在实现“记住密码”功能时,我们可以在用户登录成功后,将用户名和密码(通常经过加密处理)保存到SharedPreferences中。以下是一个简单的示例: ```java SharedPreferences preferences = getSharedPreferences(...
在这个项目中,我们看到它被扩展以支持多种登录方式,如用户名、手机号码和电子邮件,同时还包含了记住密码的功能,以及JWT(JSON Web Token)的身份验证机制。 1. **用户名登录**:这是最传统的登录方式,用户通过...
记住这些信息,可以使用Cookie来实现,更多Cookie应用,可参考http://jb51.net/article/33590.htm http://jb51.net/article/33591.htm现在我们来模拟一个登录介面: 代码如下: <table> <tr> <td xss=removed> User ...