Android APP首次登录和之后自动登录流程

Android APP首次登录和之后自动登录流程

App登陆保存数据流程

App因为要实现自动登陆功能,所以必然要保存一些凭据,所以比较复杂。

App登陆要实现的功能:密码不会明文存储,并且不能反编绎解密;

在服务器端可以控制App端的登陆有效性,防止攻击者拿到数据之后,可以长久地登陆;

用户如果密码没有泄露,不用修改密码就可以保证安全性;

可以区分不同类型的客户端安全性;比如Android用户受到攻击,只会让Android用户的登陆失效,IOS用户不受影响。

App第一次登陆流程:

用户输入密码,App把这些信息用RSA公钥加密:(用户名,密码,时间,mac,随机数),并发送到服务器。

服务器用RSA私钥解密,判断时间(可以动态调整1天到7天),如果不在时间范围之内,则登陆失败。如果在时间范围之内,再调用coreservice判断用户名和密码。

这里判断时间,主要是防止攻击者截取到加密串后,可以长久地利用这个加密串来登陆。如果服务器判断用户成功登陆,则用AES加密:(随机salt,用户名,客户端类型,时间),以(用户名+Android/IOS/WP)为key,存到缓存里。再把加密结果返回给客户端。

客户端保存服务器返回的加密串

App自动登陆的流程:

App发送保存的加密串到服务器,(加密串,用户名,mac,随机数)==>RSA公钥加密

服务器用RSA私钥解密,再用AES解密加密串,判断用户名是否一致。如果一致,再以(用户名+Android/IOS/WP)为key到缓存里查询。如果判断缓存中的salt值和客户端发送过来的一致,则用户登陆成功。否则登陆失败。

不用AES加密,用RSA公钥加密也是可以的。AES速度比RSA要快,RSA只能存储有限的数据。

转自朱志强的博客!https://blog.csdn.net/jungle_pig/article/details/54572225

曾梦想仗剑走天涯,因bug放弃了计划...

Android APP首次登录和之后自动登录流程相关教程

android app 自动登录,Android APP首次登录和之后自动登录流程相关推荐

  1. android app微信登录(android端+Java后台)

    本文demo下载:http://www.wisdomdd.cn/Wisdom/resource/articleDetail.htm?resourceId=885 本文章讲解如何在微信平台上传andro ...

  2. Android Http简单使用实现登录校园网App

    Android Http简单使用实现登录校园网App 由于登录需要学校认证的WIFI比较繁琐,所以写了个小的App自己用,算是做笔记和试图养成一个写博客的习惯- 作为一个初学者,没有企业开发的经历,很 ...

  3. android采用MVP完整漫画APP、钉钉地图效果、功能完善的音乐播放器、仿QQ动态登录效果、触手app主页等源码...

    Android精选源码 一个可以上拉下滑的Ui效果,觉得好看可以学学 APP登陆页面适配 一款采用MVP的的完整漫画APP源码 android实现钉钉地图效果源码 一个使用单个文字生成壁纸图片的app ...

  4. Android开发学习——记单词APP安卓注册登录跳转

    登陆页面XML <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayo ...

  5. android采用MVP完整漫画APP、钉钉地图效果、功能完善的音乐播放器、仿QQ动态登录效果、触手app主页等源码

    Android精选源码 一个可以上拉下滑的Ui效果,觉得好看可以学学 APP登陆页面适配 一款采用MVP的的完整漫画APP源码 android实现钉钉地图效果源码 一个使用单个文字生成壁纸图片的app ...

  6. 【Android项目实战 | 从零开始写app(十三)】实现用户中心模块清除token退出登录信息修改等功能

    五一后,被ji金伤了,哇呜呜,还是得苦逼老老实实打工写代码,看下面吧 本篇实现效果: 实现登录用户名展示到用户中心页面上,并且页面有个人信息,订单列表,修改密码,意见反馈发送到服务端,前面登录后,通过 ...

  7. 视频聊天app源码Android实现QQ登录功能

    在AndroidManifest.xml的application标签中添加一下两个activity. <uses-permission android:name="android.pe ...

  8. 基于H5+Android的高校自动排课APP系统

    目 录 摘 要 I Abstract II 1绪论 1 1.1选题背景及意义 1 1.2国内外研究现状 2 1.3研究主要内容 2 2系统工具 4 2.1 Android平台介绍 4 2.2 Andr ...

  9. 自动排课系统的设计与实现 开题报告 java_高校自动排课APP的设计与实现毕业论文+开题报告+app源码(Hbuilder+Android+sqlite+H5)+操作步骤...

    摘  要 传统的人工排课使用手工操作存在许多弊端,如重复劳动严重.效率低下.且不能达到资源的最优化配置等,将产生大量的文件和数据,这对于查找.更新和维护都带来了不少的困难.因此设计一个高校自动排课AP ...

  10. Python笔记-使用U2自动登录某APP及watcher使用

    import uiautomator2 as u2class HandleWDJ(object):def __init__(self, serial="8681-A01-0xc60fcc9d ...

最新文章

  1. 字节流转化为文件流_JAVA IO分析一:File类、字节流、字符流、字节字符转换流...
  2. 02使用常规步骤编译NanoPiM1Plus的Android4.4.2
  3. 时评:别让智能设备成为网络安全的“蚁穴”
  4. 如何在Ubuntu 18.04上创建多节点MySQL集群
  5. macos big sur u盘安装_老款macbook机型欺骗补丁强制安装macOS11 Big Sur图文详解
  6. Realme首款5G手机真我X50官宣:支持SA/NSA双模5G
  7. 都是用Redis的服务器,12306为啥干不过淘宝???
  8. 面试宝典系列-什么是心跳包机制
  9. ubuntu 18.10增加和设置Swap交换分区
  10. python包管理工具ports_如何从自制程序,分发,macports,pip卸载所有软件包?
  11. 软件基本功:不要给代码加系数
  12. 对象与对象之间的赋值(别名现象)
  13. 常用分辨率、帧率、码率
  14. LeetCode/LintCode 题解丨一周爆刷双指针:神奇字符串
  15. sketch制作Android动画,Sketch制作GIF动画——基础篇(改良版)
  16. Fiddler使用介绍
  17. PHP - 设计模式系列
  18. C++版Android实时投屏软件系统源码,安卓手机投屏软件源码,无需root权限
  19. 栅压自举采样电路(bootstrap技术)
  20. Kubernetes全栈架构师(二进制高可用安装k8s集群扩展篇)--学习笔记

热门文章

  1. linux终端软件mobaxterm,连接centos
  2. ArtWork(并查集+降维)
  3. 基于C语言的信息管理系统和小游戏
  4. 【网络运维与安全岗位】月薪2.5w,您还不知道的前景!
  5. 67键键盘如何输出`和~符号(一百五十一)
  6. 不得不服!以商品超卖为例讲解Redis分布式锁
  7. 华米已成全球第五大智能手表企业,可望进一步摆脱对小米的依赖
  8. 计算机主板的i o芯片坏了,主板芯片坏了电脑还能开机吗?
  9. 大数据工程师的日常工作是什么?要掌握哪些核心技术?
  10. 大数据工程师岗位JD中最常出现的技能