美文网首页
Token与签名区别分析

Token与签名区别分析

作者: 善思者_tin | 来源:发表于2020-01-09 09:02 被阅读0次

一、概述

大家都对Token和签名耳熟能详,但是为什么在进行安全校验的时候要使用TOKEN+签名认证的方式?单独使用TOKEN或者单独使用签名认证不行吗?

二、Token

背景介绍:

在网站、app与服务器交互的过程中,很多时候需要:

1、标示客户端的请求是否合法,是否已经登录;

2、避免用户多次输入密码,实现自动登陆;

3、避免在终端直接存储用户的密码。

Token验证流程:

基于以上需求,我们就引入了token机制,Token的验证流程通常如下:

1、客户端通过用户名、密码请求登录;

2、服务端接收到客户端请求后,对用户名与密码进行验证;

3、验证成功后,服务端会签发一个 Token,这个Token是与用户名一一对应的,Token一般可以存储在缓存(Redis)或数据库中,以方便后面查询出来进行验证。再把这个 Token 发送给客户端

//如下表示将token保存一个月

redisTemplateUtil.setExpire(RedisPrefixConstants.ADMIN_LOGIN_USERKEY + userKey, userToken +"**",30 *24 *3600);

4、客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里;

5、客户端每次向服务端请求资源的时候需要带着服务端签发的 Token;

6、服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据;

7、Token存在过期时间,在Token生成的时候可以打上一个时间戳,验证token的同时验证是否过期,并告知终端。终端接收到token过期的返回后,则要求用户重新输入用户名跟密码,进行登录;

8、用户的一些操作需要从新请求服务端下发token,如退出、修改密码后重新登录。

三、签名

背景介绍:

在客户端与服务器进行交互时,报文虽然加密了,但是我们并不能确认这个报文是谁发过来的,可能能被恶意攻击传入过来的,因此需要验数据来源。例如,与第三方服务器B进行交互时,我方收到了一个已加密的请求,但我方并不能确认是服务器B发送的这个报文,此时我们可以用数字签名的方式来进行验证。

签名的作用

通过以上背景描述可以得知签名可以认证数据来源,此外签名还有如下两个作用

抗否认性:如果我方收到一个B服务器签名的请求,那么B服务器也无法否认这个请求,因为带有它的签名。

保证了数据的完整性:我方收到一个B服务器签名的请求,但我方并不能确认这个请求是否被篡改过(虽然报文加了密,也可能被篡改),此时即可用签名,验证签名中的报文与传过来的报文是否一致。

签名算法

RSA

附:

Token是如何生成的?

以某种方式比如随机生成32位的字符串作为token,核心代码如下。

UUID.randomUUID().toString().replaceAll("-","");

签名是如何生成的?

userKey,UserToken,TimeStamp按照一定的规则通过MD5或者其他方式加密得到。

相关文章

  • Token与签名区别分析

    一、概述 大家都对Token和签名耳熟能详,但是为什么在进行安全校验的时候要使用TOKEN+签名认证的方式?单独使...

  • 前端开发

    @1:session+cookie 和 token有什么区别? cookie与session的区别: Cookie...

  • JWT格式

    概念 全称:JSON Web Token。 一种浏览器与服务器之间的一种身份认证机制。 特性 安全:签名token...

  • 分析cookie session token区别

    github找个springMVC的例子,运行起来以供测试。https://github.com/Cenyol/S...

  • Token-JWT

    概况 JWT 全称:JSON Web Token,由三部分组成,头部、载荷与签名。 1、头部格式 {"typ": ...

  • Nodejs-token

    token基础 一个JWT(Java Web Token)实际上就是一个字符串,它由头部、载荷与签名 三部分组成 ...

  • MGCToken市场分析怎么样

    MGCToken市场分析怎么样? 目录.MGC Token市场分析 MGC TOKEN背景介绍 MGC TOKEN...

  • token与sessionID 的区别

    参考:https://segmentfault.com/a/1190000015881055 一、简述sessio...

  • 区块链知识普及03-ICO与IPO的区别

    ICO与IPO的区别 ICO(Initial Crypto-Token Offering)就是首次币发行,即区块链...

  • 2018-06-04

    一、基本说明 统一网关地址: API_KEY 与 TOKEN 基础请求参数构成: 签名算法 其中 data 是将 ...

网友评论

      本文标题:Token与签名区别分析

      本文链接:https://www.haomeiwen.com/subject/pbneactx.html