nonce和timestamp在实际应用(新浪微博登录时传递加密信息)中的作用
2014-09-24 15:53
232 查看
这篇文章介绍了利用Nonce(随机数)和Timestamp(时间戳)来解决重放攻击(Replay-Attack)的问题。 马上找了个新浪微博登录这个例子来看看随机数和时间戳的实际作用。
1、获取随机数和时间戳
登录之前,先通过GET从新浪服务器获取到了servertime和nonce
2、点击登录,先在客户端加密用户名和密码
先将用户名通过BASE64计算进行加密(图中su对应加密后的用户名)
然后将密码、随机数、时间戳进行组合,进行多次非对称加密(图中sp对应加密后的密码),比如:SHA1(SHA1(SHA1(密码) + servertime + nonce) + "")
其中最后""的作用是为了让最后算出来的结果肯定是个字符串,servertime和nonce的作用是进行干扰,再加上多次加密,大幅增加了破解难度。
3、组合参数,发出POST请求,等待服务器验证后的结果
上面三次SHA1加密的方法,是网上搜出来的,新浪曾经可能这么干过。但现在或以后,新浪换成其他加密算法,也是很正常的事,不要过多纠结到底用的是什么算法加密,本文目的只是说下随机数和时间戳在实际应用中的例子
1、获取随机数和时间戳
登录之前,先通过GET从新浪服务器获取到了servertime和nonce
2、点击登录,先在客户端加密用户名和密码
先将用户名通过BASE64计算进行加密(图中su对应加密后的用户名)
然后将密码、随机数、时间戳进行组合,进行多次非对称加密(图中sp对应加密后的密码),比如:SHA1(SHA1(SHA1(密码) + servertime + nonce) + "")
其中最后""的作用是为了让最后算出来的结果肯定是个字符串,servertime和nonce的作用是进行干扰,再加上多次加密,大幅增加了破解难度。
3、组合参数,发出POST请求,等待服务器验证后的结果
上面三次SHA1加密的方法,是网上搜出来的,新浪曾经可能这么干过。但现在或以后,新浪换成其他加密算法,也是很正常的事,不要过多纠结到底用的是什么算法加密,本文目的只是说下随机数和时间戳在实际应用中的例子
相关文章推荐
- 快速浏览Silverlight3 Beta: 在多个Silverlight应用间传递信息
- 快速浏览Silverlight3 Beta: 在多个Silverlight应用间传递信息 推荐
- Android WebView 新浪微博 OAuth 登录时会记住上次登录信息
- 实际应用中的C#加密
- Andrioid SystemProperties和Settings.System介绍,不同应用间传递信息
- Remoting 技术应用的实际项目 妇幼保健信息管理系统
- 软件评测-信息安全-应用安全-资源控制-用户登录限制(中)
- 如何应用GPG加密使您的信息安全保障无忧
- 新浪微博登录之前JS密码加密算法之C#版
- android luancher - 应用信息的传递
- 快速浏览Silverlight3 Beta: 在多个Silverlight应用间传递信息
- 快速浏览Silverlight3 Beta: 在多个Silverlight应用间传递信息
- 毕业论文:白盒和黑盒测试技术在“手机信息管理系统模型”测试中的实际应用
- 基于工作实际需求的Ext.Net和C#搭配应用之一 取出网域(AD)中所有计算机名及位置描述等信息
- 如何应用GPG加密使您的信息安全保障无忧
- 快速浏览Silverlight3 Beta: 在多个Silverlight应用间传递信息
- JS 参数传递的实际应用代码分析
- 软件评测-信息安全-应用安全-资源控制-用户登录限制(中)
- 软件评测-信息安全-应用安全-资源控制-用户登录限制(中)
- Andrioid SystemProperties和Settings.System介绍,不同应用间传递信息