php 开发app接口,用户登录密码怎么加密?

joxiong 2016-07-18 03:53:35
用户登录接口,app传递密码到服务端,密码应该怎样加密?
以下是我的加密方式:
1.密码首先urlencode(base64_encode())进行加密 生成字符串A
2.md5(帐号+密码) 生成一个32位的加密字符串B
3.最终加密密码格式:B的前16位+ A + B的后16位

还需要怎样优化?老大叫我加上写好的totp算法,加上totp有什么用吗?
...全文
383 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2016-07-20
  • 打赏
  • 举报
回复
一般的说 api 是无状态的,也就是说是不允许使用 cookie 来保持用户登录状态 但如果每次都要传递用户名和口令的话,显示是不安全的 因此,api 是通过 令牌(token)来识别用户的 token 是一个与用户名和时间相关的串,对每次会话都是不一样的,这要就有效的阻止了冒牌
努力的老孙 2016-07-20
  • 打赏
  • 举报
回复
同样关注这个问题, 是不是可以借签一些成熟的案例?
joxiong 2016-07-20
  • 打赏
  • 举报
回复
引用 9 楼 xuzuning 的回复:
一般的说 api 是无状态的,也就是说是不允许使用 cookie 来保持用户登录状态 但如果每次都要传递用户名和口令的话,显示是不安全的 因此,api 是通过 令牌(token)来识别用户的 token 是一个与用户名和时间相关的串,对每次会话都是不一样的,这要就有效的阻止了冒牌
也就是做用户验证的时候只验证用户登录的时候返回给客户端的令牌(token),直接验证token就能识别用户?详细的逻辑是什么?这个不是很理解。 现在我实现的用户验证是: 1.登录成功时会把用户信息存在redis上,key就是生成的token,value存的是用户信息 2.每次请求接口携带用户名+登陆时返回的令牌(token) 3.验证令牌上的用户信息是否与验证的用户匹配

/**
     *
     * 验证用户密钥
     *
     * @param unknown $username
     *            用户名
     * @param unknown $usertoken
     *            用户密钥
     * @param number $flag
     *            0:验证普通用户 1:验证商铺用户
     * @return boolean true 验证成功   false 密钥错误 
     */
    public function checkUserToken($username, $usertoken, $flag = 0) {
        switch ($flag) {
            case 0:
                $cur = 'mobile';
                break;
            case 1:
                $cur = 'username';
                break;
        }
        $tokenmodel = self::getModel('token');
        // 获得当前密钥的用户信息
        $curusertoken = $tokenmodel->userInfo($usertoken);
        if($curusertoken){
            $tokeninfo = json_decode($curusertoken, true);
            if ($username === $tokeninfo[$cur]) {
                return true;
            } else {
                return false;
            }
        }else{
            return false;
        }
    }
joxiong 2016-07-19
  • 打赏
  • 举报
回复
TOTP算法是通过时间来加密的,我把它结合到验证密码的环节有什么用吗?
joxiong 2016-07-19
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
你最好按你老大说的做
老大叫我自己思考,不要跟着他的思维走
u010023334 2016-07-19
  • 打赏
  • 举报
回复
加密前 加salt
misaka去年夏天 2016-07-18
  • 打赏
  • 举报
回复
客户端把密码进行可逆的加密处理,到服务器端进行解密还原,然后再用一些算法加密密码存入数据库
xuzuning 2016-07-18
  • 打赏
  • 举报
回复
你最好按你老大说的做
joxiong 2016-07-18
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
你的密码被嵌入在(只做了简单的变形)密文中,显然是不对的 虽然 MD5 不可逆,但是 账号 通常会显示在界面上,很容易捕获
那通常做这一类的接口,还要做些什么处理呢?
xuzuning 2016-07-18
  • 打赏
  • 举报
回复
你的密码被嵌入在(只做了简单的变形)密文中,显然是不对的 虽然 MD5 不可逆,但是 账号 通常会显示在界面上,很容易捕获
大米CMS是一个免费开源、快速、简单的PC建站和手机建站集成一体化系统,致力于为用户提供简单、快捷的PC建站和智能手机建站解决方案。 大米CMS特点: 1、扩展字段自定义,根据自己系统需要无限扩展字段,对于SELECT等下拉选项支持PHP代码生成OPTION,支持自定义多图多文件上传字段! 2、后台栏目分类无限极,并可以控制字段的显示或隐藏,生成不同的管理表单,内置RBAC权限体系,分栏目权限,内容权限,方便管理 3、列表模板(list目录下)和详细模板(page目录下)自定义, 4、基于thinkphp MVC框架开发, 内置大量函数方便前台模板调用,大米拥有自己的万能标签与分类标签等方便调用数据 5、作站灵活,可以将该系统做成任何类型网站,内置新闻类型站、企业站、手机3g站模型,通过http://***安装目录****/?t=xinwen这种查看,方便二次开发出不同模板 7、支持伪静态与全站生成静态HTML,支持数据采集 8、国内率先将微电商的概念引入CMS,让企业站不仅仅再是展示企业,可快速开展电子商务。集成支付宝标准双接口,支持购物车,可在线支付,货到付款,站内支付三种购买方式!会员集成QQ快捷登陆,支持购物订单通过电子邮件提醒! 9、跨平台支持移动终端访问,自适应,不变形!可做手机APP等应用开发,内置JSON数据API接口 10、国内CMS首创MSYQL表万能管理模型,输入MYSQL表名即可生成一个有增删改功能的管理模型,可快速在此基础上开发出自己想要的管理功能! 11、配备手机数据交互接口JSON格式APIa 大米CMS5.8.0更新: (1)安全更新:会员密码采用双重md5加密,修复SQL防注入inject_check函数过滤不严 (2)PC端增加微信快捷登陆 微信扫码支付 在微信系统中则支持直接微信支付

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧