一种绝对安全的跳转单点登陆方法
第一次请求post:
1. client 生成随机数a, g, p
2. client 通过A = g^a mod p,得到A,再带着a, g, A,以及用户名hash名,发送请求给server
3. server拿到a, g, A,以及用户名hash,对应生成一个随机数b,则得到B=g^b mod p,把B返回给client
4. server通过查询用户名hash列表,得到真实用户名
4. server通过K=A^b mod p,得到一个共享密钥K,这个共享密钥对应请求的用户名
5. client拿到返回的B,通过K=B^a mod p,也能够拿到一个共享密钥K
第二次请求post:
1. client通过K对用户密码加密,得到passwd_sec
2. client再使用passwd_sec和用户名hash进行登录token获取的请求
3. server拿到passwd_sec,使用共享密钥K解密出passwd,查询用户名hash列表,得到真实用户名
4. 核对用户名和密码,确认登录状态,生成登陆token,返回给client
第三次请求get:
1. client拿到token,直接使用token_new = token+用户名hash+refer,然后使用共享密钥K进行加密,直接使用token_new单一参数进行请求
2. server接收到这个字符串之后,使用K进行解密,得到token和用户名hash以及refer,进行refer校验是否在白名单内,进行登陆操作,并且转跳到登录成功后的页面。
每一个请求即使被拦截了也毫无意义,因为单纯从返回的字段内容,是无法得到有用信息的。即使把所有请求都拦截了,并且解析出明文数据,依旧无用。
一种绝对安全的跳转单点登陆方法相关推荐
- 局部遮荫光伏matlab,一种基于随机蛙跳全局搜索算法的局部阴影光伏阵列MPPT控制的制作方法...
本发明涉及一种局部阴影光伏阵列多峰MPPT控制方法,特别涉及一种基于随机蛙跳全局搜索算法的局部阴影光伏列阵多峰MPPT控制. 背景技术: 伴随太阳能发电的普及,光伏阵列的运行环境变的越来越复杂,局部遮 ...
- 两种方式实现登录跳转新窗体
两种方式实现登录跳转新窗体 直接隐藏登录窗体 显示主界面 //验证是否有此用户 int? flag = studentService.StudentLogin(userNameText.Text.Tr ...
- php倒计时跳转网页,三种实现网页定时跳转(倒计时跳转)代码
在我们做网页的时候,尤其是动态网页,再加上异步伐提交的时候,需要对网页进行跳转的操作,今天我们就分享一下,如何利用JQuery或HTML代码对网页进行跳转或倒计时跳转的操作. 利用Js的setTime ...
- 单点登陆有几种实现方式_关于方法实现的几点思考
单点登陆有几种实现方式 在罗伯特·C·马丁(Robert C. Martin)的"清洁代码"的第17章中,作者描述了" 代码气味 "的思想,即在开发中的实践,尽 ...
- 几种常见网页自动跳转方法
种常见网页自动跳转方法对SEO的影响 网页自动跳转,是指当用户访问某个网页时,被自动跳转到另一个网页中去.网页自动跳转的主要作用 是,当域名变更后,或者网站里的一个或多个网页被删除后,可以使用这种方式 ...
- IM开发基础知识补课(一):正确理解前置HTTP SSO单点登陆接口的原理
1.前言 一个安全的信息系统,合法身份检查是必须环节.尤其IM这种以"人"为中心的社交体系,身份认证更是必不可少. 一些PC时代小型IM系统中,身份认证可能直接做到长连接中(也就是 ...
- ASP.NET站点跨子域名单点登陆(SSO)的实现
http://blog.csdn.net/jason_dct/article/details/8502075 ASP.NET站点跨子域名单点登陆(SSO)的实现 在MSDN的文档"配置跨应用 ...
- IM开发基础知识补课:正确理解前置HTTP SSO单点登陆接口的原理
1.前言 一个安全的信息系统,合法身份检查是必须环节.尤其IM这种以"人"为中心的社交体系,身份认证更是必不可少. 一些PC时代小型IM系统中,身份认证可能直接做到长连接中(也就是 ...
- 社交登陆,分布式session,单点登陆,jwt
社交登陆,分布式session,单点登陆,jwt 一.社交登录 QQ. 微博. github 等网站的用户量非常大, 别的网站为了简化自我网站的登陆与注册逻辑, 引入社交登陆功能: 步骤: 1) . ...
最新文章
- Python csv模块的使用
- 秒半价,限三天。戴尔i7高配电脑低至2750元
- 旧版 npm 安装 node_modules 模块目录层次过深,导致 win 下无法删除
- uv,top3访问次数
- [转] 多线程 《深入浅出 Java Concurrency》目录
- python打开鼠标指定文件夹_学会python文件操作,鼠标好像没用了,学习python第10天...
- DeDe调用指定栏目ID下的文章
- python入门教程 非常详细-Python编程入门教程:从入门到高级,非常详细
- TCxGrid 把列移上移下。
- DropDownList下拉框多选
- 如何防止用户重复提交数据
- LINUX SHELL中大小写转换及注意事项
- wsl使用可视化界面_WSL 科学计算〇 | 适合计算化学的环境配置
- 火星开发板_数据科学家来自火星,软件开发人员来自金星
- Ubertooth one“蓝牙扫描嗅探”使用教程
- DICOM标准之一_介绍和概述
- C_CAPM模型(上)
- 蔡高厅高等数学28-高阶导数
- 职称计算机初级应知应会书,职称计算机考试用书
- 二叉树的中序遍历 [递归 迭代]
热门文章
- 北京的“七环路”解决不了堵车问题 预计2015年通车 全长约940公里
- html表单颜色背景图片大全唯美伤感,伤感唯美意境背影图片大全
- 【Android】android TV开发
- windows ubuntu16.04 双系统 ubuntu基本操作笔记
- simulink仿真pid控制伺服系统
- ICCV 2021|Aibee提出LCE:一个随意转换模型的通用框架
- AcWing 4261. 孤独的照片
- uniapp使用腾讯地图实现定位,选点,距离计算和导航功能
- 家人们,我用ChatGPT来做减肥指引,分享下心得
- scratch数星星 电子学会图形化编程scratch等级考试三级真题和答案解析2021-12