zoukankan      html  css  js  c++  java
  • 用户密码传输和存储的保护

    软件设计的过程中,用户的密码信息最为敏感,在进行用户登录验证时,除了将密码在传输的过程中,进行md5加密,避免密码明文传输过程中被截获外,还有一个就是密码在数据库中的存储安全问题。

    常用的方案是对密码进行“加盐”处理。

    用户注册。

    1.      得到用户传过来的密码后,首先在计算机中获取一个随机数,

    2.      获取到随机数后,设计一个任意算法,对随机数与用户密码进行拼接处理,比如最简单的(用户密码+随机数),者将得到一个全新的字符串

    3.      我们再对这个新的字符串进行哈希算法处理,得到一个新的密码,由于哈希算法的特殊性,该算法是不可逆的。

    4.      将用户id,新密码和随机数保存到数据库中。用户注册成功。

    用户登录。

    1.      服务端获取到用户的id和密码后,根据用户id从数据库中取出该用户的新密码和随机数。

    2.      把用户传过来的旧密码和随机数交给用户注册第2步中的随机数和密码拼接算法,拼接后,得到一个新的字符串(和用户注册第2步得到的全新字符串是一模一样的)。

    3.      将新字符串交给哈希算法处理将得到一个处理结果。

    4.      如果处理后的结果和数据库中存储的新密码相同,那么,该用户传过来的密码是正确的,登录成功,否则,登录失败。

    这就是常用的用户密码“加盐“!


  • 相关阅读:
    Saltstack module acl 详解
    Saltstack python client
    Saltstack简单使用
    P5488 差分与前缀和 NTT Lucas定理 多项式
    CF613D Kingdom and its Cities 虚树 树形dp 贪心
    7.1 NOI模拟赛 凸包套凸包 floyd 计算几何
    luogu P5633 最小度限制生成树 wqs二分
    7.1 NOI模拟赛 dp floyd
    springboot和springcloud
    springboot集成mybatis
  • 原文地址:https://www.cnblogs.com/CoderAyu/p/8490103.html
Copyright © 2011-2022 走看看