zoukankan      html  css  js  c++  java
  • 项目实践总结 存储短信验证码

      存储短信验证码有如下几种方式:

      1 Cookie

      Cookie存在客户端即浏览器,可以被修改。因此,即使加密了,也不可靠。

      2 Session

      Session存在服务端即服务器,虽然安全并且可以设置失效时间,但是Session会受到客户端即浏览器的影响,因为关闭浏览器后Cookie不可用会使得Session不可用,即使Session未超时。另外,Session一般只存储用户id。

      3 数据库

      验证码存在数据库后每次访问数据库都会消耗很多资源。作为临时数据,验证码不需要持久化,没有必要存入数据库。

      注:正常状态指手机号已注册且没有被封号,条件语句中的手机号有时指手机号对应的用户,验证信息指验证码和有效期,下同。

      获取验证码的流程图如下:

      

      注册的流程图如下:

      

      重置密码的流程图如下:

      

      4 内存

      在内存中通过HashMap来存储key手机号和value验证信息(包括验证码和有效期)的键值对。ConcurrentHashMap不允许key或value为空。

      获取验证码的流程图如下:

      

      注册的流程图如下:

      

      重置密码的流程图如下:

      

      5 Redis缓存

      采用高可用集群的配置方式来实现Redis缓存,高效率且低消耗,有利于实现高并发。

      参考资料

      短信验证码存储问题!

  • 相关阅读:
    [LeetCode] Sort Colors
    [LeetCode] Trapping Rain Water
    [LeetCode] Sudoku Solver
    [LeetCode] Valid Sudoku
    [LeetCode] Candy
    [LeetCode] Permutation Sequence
    [名词解释]Constant Amortized Time
    回溯法 子集树和排序树
    HDU 4859 海岸线 最小割
    敏捷开发一千零一问:怎样处理重要但不明白的任务?
  • 原文地址:https://www.cnblogs.com/WJQ2017/p/8366426.html
Copyright © 2011-2022 走看看