HTML5技术

常见的几种数据加密与应用场景 - 连程(2)

字号+ 作者:H5之家 来源:H5之家 2017-03-14 15:00 我要评论( )

其实很多时候,自己人是比较难搞的。比如说密码的问题吧。早期的网站很多时候,账号密码就是明文的(安全意识不强,当然了早期嘛,谁都会犯错)。这个时候运营打开自家数据库。那么所有的账号密码那是一览无余呀。

其实很多时候,自己人是比较难搞的。比如说密码的问题吧。早期的网站很多时候,账号密码就是明文的(安全意识不强,当然了早期嘛,谁都会犯错)。这个时候运营打开自家数据库。那么所有的账号密码那是一览无余呀。这种时候只能靠运营的节操来保证数据不会被偷了。就算是运营不会自己偷这部分数据。但是你要知道,总有一些黑客能够偷偷溜进服务器,偷了一块数据库。如果你有加密(不可逆加密)的话,就算拿到数据库也是没有什么用的,因为密码那一栏被干掉了。这样保证最起码,账号密码不会同时被盗。话说我的所有账号密码都基本上是一套,一套掉了,基本上全套都得换,这是意见非常恐怖的事情。(因为场景用的多了,难免会有一些你想不到,没有去改的,却给你带来比较严重的后果)

怎么让Token失效 服务器端更换密钥

因为密钥更换了,所以所有的加密使用原来公钥加密的数据都会失效。所以可以达到更换Token的目的。不过这样的确定十分明显,因为你是在同一个时间点上换的,所以所有数据都会失效,然后重新拉取凭证。这个时候服务器压力应该会很大。再一个就是没什么用,因为攻击者可以在失败之后直接获取一个新的有效Token就可以了。

客户端服务器数据协同

就是让服务器跟客户端数据保持时间上的一致性,一般情况下要求保持分钟数据相同就可以了。这样客户端算出来自己的Token + 时间分钟戳的密文,然后发送给服务器。服务器接收到密文不需要解密(因此这种是使用不可逆加密算法更为靠谱),直接算出三个结果 (Token + 当前时间和Token + 当前前后各一分钟的时间)判定用户上传的数据是否属于这三个之一,如果是属于就通过,不属于就不通过。

客户端的每一个Token都是不一样的

客户端(或者Web网页)用自己的Token + 当前的时间戳(假定不会再同一时间上有多个请求,时间戳可以定的单位更小一些或者进行排队)生成一个密文,然后发送给服务器。服务器拿到密文之后解密,获取并验证Token如果Token通过了就看时间戳是不是在上一个时间戳之后。如果不是在上一个时间戳之后,那么就验证失败好了。

后记

可能比较乱这个,我也是想到什么地方,就写到什么地方。欢迎在下方评论。

说明

MD5其实并不能算作是一种加密算法,因为加密算一半要牵扯到解密。MD5是一种摘要算法,就是从大数据块中摘取特征码的一种算法。文中将他作为一种不可逆的加密算法来看待,当然这是不准确的一种说法,望周知

posted @

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 一个小时学会MySQL数据库 - 张果

    一个小时学会MySQL数据库 - 张果

    2017-03-09 17:01

  • 基于 socket.io, 简单实现多平台类似你猜我画 socket 数据传输 - HOWIE-CH

    基于 socket.io, 简单实现多平台类似你猜我画 socket 数据传输 - HO

    2017-03-09 17:00

  • vue的进阶 标签属性数据绑定和拼接 - kengwfpzu920

    vue的进阶 标签属性数据绑定和拼接 - kengwfpzu920

    2017-03-03 16:02

  • 数据库MySQL调优实战经验总结 - 肖邦linux

    数据库MySQL调优实战经验总结 - 肖邦linux

    2017-02-18 13:02

网友点评