`
wyf
  • 浏览: 436633 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
社区版块
存档分类
最新评论

登录时记住用户名密码的实现方式

 
阅读更多

登录的时候记住用户名密码,目前大多数浏览器本身已经支持这种功能,如果不用浏览器本身的功能,自己来实现呢。



 一部分人在前端直接用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的失效。

 

 

 

 

 

  • 大小: 30.4 KB
分享到:
评论

相关推荐

    网页登录记住用户名密码登录时间的cookies的做法

    网页登录记住用户名密码登录时间的cookies的做法是指在网页登录时,使用cookies来记住用户名、密码和登录时间,以便下次登录时自动填充用户名和密码,从而提高用户体验。本文将详细介绍使用cookies记住用户名密码...

    Javascript实现登录记住用户名和密码功能

    Javascript实现登录记住用户名和密码功能的核心在于使用Web存储技术,这里主要用到了cookies技术来实现这一需求。在页面加载时,可以通过读取保存在本地的cookies来自动填充表单中的用户名和密码信息,从而达到记住...

    Cookie记住用户名密码

    在网页应用中,"Cookie记住用户名密码"是一个常见的功能,它允许用户在访问网站时选择保存他们的登录信息,以便下次访问时自动填充,提供便捷的用户体验。这个功能主要依赖于JavaScript和Cookie技术来实现,无需复杂...

    js实现登录时记住用户名

    在JavaScript(JS)中实现登录时记住用户名的功能是一项常见的需求,尤其在Web应用程序中,它提高了用户体验,使得用户下次访问时无需再次输入用户名。本文将深入探讨如何利用JS实现这一功能,结合`common_util.js`...

    QT登录界面,添加记住密码和用户名功能

    在QT中创建一个登录界面,并添加记住用户名和密码的功能,是提高用户体验的重要一环。这个功能允许用户在登录后选择保存他们的凭据,以便在下次打开应用时自动填充,减少了用户输入的步骤。 首先,我们需要创建一个...

    记住登录时的用户名和密码

    在IT行业中,用户认证是网络安全的基本要素之一,而“记住登录时的用户名和密码”功能则是为了提升用户体验而设计的一项常见功能。这个功能允许用户在登录某个网站或应用时保存其登录凭据,以便在下次访问时能够快速...

    ssh+extjs全注解登陆实现,包含验证码和记住用户名等

    记住用户名功能则是为了方便用户,减少他们每次登录时输入用户名的步骤。 实现这个功能的过程中,开发人员可能需要以下关键知识点: 1. **SSH框架**:理解Spring Security或Apache Shiro等SSH实现的安全机制,如...

    C# winform记住密码及自动登陆源码

    这个源码示例提供了一种实现方式,其设计灵感来源于QQ客户端的用户登录界面,旨在帮助开发者学习如何在自己的应用程序中集成这些特性。下面我们将深入探讨相关知识点。 1. **WinForm控件与布局**: - 使用`Label`...

    PuTTYV6.0保存用户名和密码

    这个特别的V6.0版本可能通过某种方式实现了这一功能,可能是通过修改源代码或者利用了特定的插件。 在使用能够保存密码的PuTTY版本时,用户应谨慎处理,因为这增加了密码被盗的风险,如果电脑被恶意软件感染或被盗...

    android studio 第五章课后实践(实现登录界面设计、记住密码操作)

    6. 当用户选择“记住我”并登录后,下次打开应用时,可以在onCreate()方法中读取SharedPreferences中的用户名和密码,如果存在,可直接跳过登录界面,直接进入主界面。 以上就是关于Android Studio中实现登录界面...

    android 实现登陆界面的记住密码源码

    "记住密码"功能是登录界面的一项重要特性,它允许用户在登录时选择保存他们的用户名和密码,以便下次登录时自动填充,提高用户使用的便捷性。在本示例中,我们使用了`SharedPreferences`这个Android内置的轻量级数据...

    delphi unigui登录界面记住用户密码

    当用户勾选“记住密码”选项时,需要将用户名和加密后的密码安全地存储在本地。可以使用`test.db`文件作为SQLite数据库存储这些信息,或者使用Windows的注册表。存储时,密码应使用安全的加密算法进行加密,如AES。...

    BAT批处理脚本-获取当前用户名和密码.zip

    至于批处理脚本如何获取当前用户名,可以通过内置的`%username%`环境变量来实现。这个变量存储了当前活动用户的用户名。在批处理脚本中,我们只需要简单地echo(输出)这个环境变量即可: ```batch @echo off echo ...

    Asp.Net MVC记住用户登录信息 下次登录无需输入密码

    在Asp.Net MVC框架中,实现用户登录信息的自动记忆功能,使得用户在下次访问时无需再次输入用户名和密码,主要是通过利用浏览器的Cookie技术来完成。Cookie是一种客户端存储机制,它可以在用户的本地计算机上保存小...

    找出WinNT&Win2000当前登陆用户的用户名和密码.zip_密码登陆_登陆 密码

    标签“密码登陆”和“登陆_密码”可能是指用户登录时输入的身份验证过程。在Windows系统中,当用户尝试登录时,系统会比较输入的密码与存储的密码哈希进行匹配。如果匹配成功,用户将被授予访问权限。为了增强安全性...

    servlet实现自动登陆、记住密码、统计总共登陆次数

    纯servlet编写登陆功能,实现自动登陆、记住密码。展示了cookie和session的用法。注释详细,可以作为今后的参考

    denglu.rar_MFC登陆界面_mfc用户名密码_mfc的登陆界面

    在MFC中,我们可以利用对话框类(CDialog)来创建登录界面,通过添加控件如编辑框(CEdit)来实现用户输入用户名和密码的功能。 首先,我们需要创建一个新的MFC对话框项目。在VC6中,选择“文件” -&gt; “新建”,...

    Android记住密码和自动登录实现

    在实现“记住密码”功能时,我们可以在用户登录成功后,将用户名和密码(通常经过加密处理)保存到SharedPreferences中。以下是一个简单的示例: ```java SharedPreferences preferences = getSharedPreferences(...

    Spring Boot Security 2.5.8 实现账号、手机号、邮件登录,记住密码等功能

    在这个项目中,我们看到它被扩展以支持多种登录方式,如用户名、手机号码和电子邮件,同时还包含了记住密码的功能,以及JWT(JSON Web Token)的身份验证机制。 1. **用户名登录**:这是最传统的登录方式,用户通过...

    登录时记住用户名和密码及cookie案例应用

    记住这些信息,可以使用Cookie来实现,更多Cookie应用,可参考http://jb51.net/article/33590.htm http://jb51.net/article/33591.htm现在我们来模拟一个登录介面: 代码如下: &lt;table&gt; &lt;tr&gt; &lt;td xss=removed&gt; User ...

Global site tag (gtag.js) - Google Analytics