zoukankan      html  css  js  c++  java
  • 使用memcache进行账号验证服务

    适用环境是需要频繁进行账号和请求合法性验证的地方

    大致思路:

    1、登陆时,服务器端接收一个账号和密码,还可以再加上用户的ip等信息通过md5等加密算法计算出一个定长的字符串作为用来验证的token

    2、根据用户账号/id md5出一个定长的字符串,用来作物memcache的key

    3、把生成的key和token存入memcache,并设置有效期为2小时(具体根据需要,最大不超过30天)

    4、当每次客户端请求时都会传递用户的id和步骤1计算出的token,与memcache中的数据进行对比,如果正确,value的有效期延长为设置的有效期时间

    所解决的问题:

    1、多处登陆,因为在不同的机器/时间/ip登陆后token都会发生变化,势必会导致另外一台机器上的用户下线

    2、减少数据库的读取,降低服务器的压力

    所需要完成的方法:

    1、生成key,可以使用md5获取定长的字符串作为key

    2、根据参数生成token,参数包括id,password,然后在服务端获取ip(如果可以获取的到),并使用timestamp进行加密

    3、存储key/token,并设置有效期

    4、数据验证,给出id和token,验证token是否合法

    ---------------------------------

    added @2013-09-06 08:57

    这里面还有一个要解决的问题就是登陆时的数据验证问题,我找到的有两种验证方法

    1、比较简单的就是hash验证,可以多种加密方法同时使用,优点是简单方便

    2、使用证书,优点是更安全

  • 相关阅读:
    SessionFactory Cache 的配置
    乱码处理问题
    格式化当前日期
    JDK的安装
    内存和对象内存池技术在网游开发中的注意点和应用
    Head First设计模式C++实现Strategy模式
    介绍三种将二进制字节字符转换为ASCII方法
    C++风格的类型转换的用法
    i++循环与i循环的执行效率
    系统程序员成长计划组合的威力(一)
  • 原文地址:https://www.cnblogs.com/imoing/p/3261120.html
Copyright © 2011-2022 走看看