`
wyf
  • 浏览: 424887 次
  • 性别: 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的做法

    Cookie记住用户名密码

    利用js+Cookie实现的记住用户名、密码功能,简单、实用、无后台繁琐代码,新手亦可看懂。

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

    NULL 博文链接:https://xgtxxxx.iteye.com/blog/1594688

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

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

    Android实现记住用户名和密码功能

    登陆界面创建一个复选按钮,通过按钮选取来进行事件处理。若按钮选中记住账号和密码的信息,本文教大家如何使用Android实现记住用户名和密码功能,感兴趣的小伙伴们可以参考一下

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

    C# winform记住密码及自动登陆源码,仿QQ界面设计

    登录时记住用户名和密码及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 ...

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

    这段源码直接使用SharedPreferences类。就可以达到保存用户名和密码的功能,代码很短,很容易读懂。移植性很好。

    Winform 实现记住密码和自动登录-附件资源

    Winform 实现记住密码和自动登录-附件资源

    登陆界面-记住密码、最近用户、用户索引

    这个程序是一个Android的登陆界面的设计,它实现了如下功能:记住密码,用户输入时有用户名提示选择。还有管理员界面,添加新用户,修改密码。这里使用的是sharedpreferences和数据库两种方式。

    多种方法实现360浏览器下禁止自动填写用户名密码

    目前开发一个项目遇到一个很恶心的问题,本来在登陆界面输入用户名密码后登陆,选择记住密码后,在内容页里面的&lt;input type=”text” id=”userName” /&gt;以及&lt;input type=”password” id=”password” /&...

    Vue+element+cookie记住密码功能的简单实现方法

    1、登录时勾选记住密码,用cookie保存账号和密码并对密码进行两次加密处理(纯前端),下次登录自动输入账号密码 2、登录时不勾选,清空cookie,下次登录需要输入 效果图: ======================================...

    基于Android登陆记住我

    使用Android Studio开发平台,利用SharedPreferences,在登陆时,若用户勾选记住我的复选框,则在本地生成一个文档记录用户名和密码,下次登陆时免去输入用户名和密码直接登陆。

    android原生登录 +webview 记住登录状态

    在进行APP+H5混合开发的时候,一些功能是用native方法实现的,如登陆,一些功能是用H5实现的。所以往往需要将在native方法登陆的状态同步到H5中避免再次登陆。这种情况在Android开发中比较常见,因为Android不会自动...

    PyQt 编写的用户登录,注册页面源码

    3、提供记住用户名,用户密码,用户自动登录功能,并可以在三种模式下切换。 客户端注册页面实现功能: 1、用户注册,保存注册成功用户数据。 2、检验用户ID,ID只能为字母与数字,不允许中文或其他特殊字符。 3、...

    php中实现记住密码下次自动登录的例子

    整个过程就是用户在登陆的时候,如果选择了记住密码或者一周内免登陆等这个选项的时候,则在用户成功登陆操作完成之后,存储一个实现自动登录的cookie的数据到数据库的用户表里面,作为下次自动登录时验证用。...

    cookie和表单实现基本登录并保存信息

    同时页面加载时需要判断之前是否有记住的登陆状态的选项,即查cookie是否存在 存在则在用户名和密码输入框中自动填入cookie用户信息 否则跟第一次访问输入框为空一样 doLogin.jsp 执行login.jsp页面的请求,判断是否...

    Android 登录界面记住密码功能

    本小程序实现了一个登陆界面的布置,当用户启动程序时输入用户名和密码,点击记住密码当下次在次启动程序时密码将自动的保留,不用输入。界面比较简单,希望大家可以继续的完善一下。希望能给大家带来帮助。 效果图...

    双鱼林asp.net在线考试系统毕业设计源码

    5、另外还用了Cookie实现了记住用户名,方便用户的输入 6、学生登陆成功后,可以修改个人密码,查看考试记录,也可以选择考试 7、界面美观方面,不同的权限显示不同的界面内容 系统后台功能: 个人信息管理 修改...

    asp.net在线考试系统毕业设计源码

    5、另外还用了Cookie实现了记住用户名,方便用户的输入 6、学生登陆成功后,可以修改个人密码,查看考试记录,也可以选择考试 7、界面美观方面,不同的权限显示不同的界面内容 系统后台功能: 个人信息管理 修改...

Global site tag (gtag.js) - Google Analytics