token 和 sign 的理解

token:令牌,用于验证用户身份和登录状态的标识。

实现方式:用户在登录时,将用户名和密码返回给服务器,登录成功的情况下,服务器会根据用户信息或其他方式生成一个token ,将 token 和用户 id 以及时间戳存入 token 表,并将这个 token 返回给客户端。

之后用户就可以携带这个 token 进行业务访问,接口在请求时,生成一个时间戳,服务器在收到请求后,先对比该时间戳与 token 表中存的该 token 的时间戳,验证 token 是否过期,如果过期,直接让用户重新登录,并删除该过期的 token ,在用户重新登录后将新的 token 新的登录时间戳以及用户 id 存入表中。

如果用户没有登录,直接发送请求,此时请求是没有 token 的,那服务器无法获取到 token ,就表示用户没有登录,会跳转至登录页,让用户登录。

个人理解:用户登录后,服务器根据个人信息签发一个身份令牌,在一段有效期内,用户可以根据这个身份令牌进行访问,当令牌过期或者用户不持有令牌时,需要重新登录获取新令牌。

场景:1. 用户登录后,一段时间内免登录;2. 单点登录(多台设备准备登录,一台登录会挤掉另一台登录的账号,因为新设备登录,服务器会生成该用户的新令牌,然后该用户之前签发的老令牌就会失效且会被删除)。

sign:签名,服务端在接受用户请求时,判断该请求是否来自于自己允许的平台(自己允许的平台有统一的加密规则,防止请求在客户端发出后被拦截)

实现方式:客户端在登录后操作发送请求时,会携带上参数(可以是用户信息和时间戳)和 sign ( sign 是客户端根据携带的参数和 token 按照服务端统一的加密方式,进行加密后的结果,携带的参数可以是用户信息)。服务端接收到参数和 sign 后,先拿到时间戳,看时间戳是否过期,如果时间相差过大,超过规定时间,那么请求超时,让用户重新发送请求;若对比时间戳发现请求未超时,就用和客户端协商好的加密方式,拿用户传的参数和在 token 表中取到的该用户的 token 进行加密,将加密后的结果与用户传过来的 sign进行对比,若一样说明是该用户发来的正常请求,则响应请求返回用户所需要的数据,若不一样,就拒绝该请求,让用户重新发送请求。

这样做的好处是,生成了签名以后,哪怕被拦截了这样一个请求,也可以根据访问时间和访问参数对该请求进行一个校验,如果请求时间过长,请求超时,服务器不响应;如果请求未超时,但是参数被修改,那此时拿传递的参数与token进行加密后得到的结果,又与传递过来的 sign 不同,那就可以判断该请求有问题,也不予以响应,这样提高了一定的通信安全性。


浅述对称加密算法和非对称加密算法(RAS 算法 )
https 协议:主要用于网页加密。看 https 协议如何应用“数字证书”

1. 首先客户端向服务器发起请求;

 2. 服务器用自己的私钥加密网页后,连同本身的数字证书,一起发送给客户端;

 3. 客户端(浏览器)的 “证书管理器”,有 “受信任的根证书颁发机构”列表。客户端会根据这个列表,查看解开数字证书的公钥是否在列表之内(因为数字证书是服务器去找“证书中心”——certificate authority,简称CA,为公钥做了认证,即证书中心通过自己的私钥来对服务器的公钥和一些相关信息进行了加密,生成的就是“数字证书”,那如果有该证书对应的公钥,就可以解开数字证书,并拿到服务器真实的公钥来对服务器返回的加密网页或信息进行解密);

4. 如果数字证书记载的网址,与你正在浏览的网址不一致,就说明这张证书可能被冒用,浏览器会发出警告;

5. 如果这张证书不是由受信任的机构颁发的,浏览器会发出另一种警告;


参考:SSH 公钥 私钥的理解 - 知乎token和sign理解_qwangcong的博客-CSDN博客

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
token + sign是一种常见的身份验证机制。在这种机制中,用户在登录时会获得一个token,然后在每次请求时将tokensign一起发送给服务器进行验证。 token是一个用于标识用户身份的字符串,通常由服务器生成并返回给客户端。它可以包含用户的一些信息,比如用户ID、角色等。客户端在每次请求时都需要携带这个token,以便服务器能够验证用户的身份。 sign是一个用于验证token的签名,通常是通过对token进行加密或者哈希得到的。服务器在接收到请求时会对tokensign进行验证,以确保token的合法性和完整性。如果验证失败,服务器可能会拒绝请求或者要求用户重新登录。 通过使用tokensign进行身份验证,可以提高系统的安全性和用户的隐私保护。同时,这种机制也可以减轻服务器的负担,因为服务器只需要验证tokensign,而不需要每次都对用户名和密码进行验证。 总之,token + sign是一种常见的身份验证机制,通过使用tokensign可以实现用户身份的验证和保护。 #### 引用[.reference_title] - *1* [关于tokensign介绍,附postman动态生成tokensign请求(含php获取请求头信息)](https://blog.csdn.net/qq_43382853/article/details/107407442)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [tokensign理解](https://blog.csdn.net/shenjing_Shining/article/details/120451696)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值