淘宝,购物者的天堂。每天更有数以万计的用户登陆购买商品,其背后的技术支持,能让我们愉快的购物。
而前段时间吵得很火的,数据包劫持能够分析到你的各种行为,其中不乏网站账号密码。而为什么他们没有劫持到淘宝的账号密码呢,总是拿别的小软件开涮呢?原因很简单,淘宝的密码在页面传输之前就进行了rsa加密(一种非对称的算法),传输的时候已经变为了已加密的密码了,就算你截取后,没有私有密钥也是解不开的,而且每次rsa加密后都会得到的不同密文,so,这既是为什么没人调戏淘宝的原因。
讲了这么多,先讲讲我是怎么找到加密算法那段代码的吧,适用于新手。

一、寻找rsa加密模块

  1. 用火狐浏览器,然后加firebug插件

  2. 选择属性改变时暂停


此时的password2也就是加密后密文

  1. 正常登录
    输入账号密码后提交,此时浏览器会暂停起来。

    一直F11,直接看到右边视图,然后点击右边第一行,再到左边点击箭头所选位置(JS格式化)。
    再点F11, 就调到了RSA加密模块了。
    在进入加密模块前,可以看到加密模块的调用信息:
 encrypt: function (a) {// a为你输入的密码return a && this.pbk //pbk是页面上传入的密钥,图2上面的pbk&& this.exponent ? (this.rsa || (this.rsa = new e, this.rsa.setPublic(this.pbk, this.exponent)), a = this.rsa.encrypt(a))  : a}//exponent是10001,如果不清楚都可以采用直接在console里面输入的方式得到。//全文的意思是,判断a,pbk,exponent 是否为空,若不为空,则首先设置公钥,然后再对a进行加密,最后返回加密后的a

OK,我们分析完他的调用方法后,再看它的加密具体实现
地址在这里https://g.alicdn.com/kg/??rsa/2.0.1/index-min.js?t=1358514278.js

二、分析加密算法

打开我们找到的rsa加密模块地址,每一段开头都有这样一段代码

KISSY.add('kg/rsa/2.0.1/index', ['./jsbn','./rng'
]

其实不然,通过对kissy(淘宝js框架)的简单了解,大概意思应该是在kissy中添加一个模块,这个模块的地址为“kg/rsa/2.0.1/index”,其中会用到另外2个模块 ‘./jsbn’, ‘./rng’。
插一句题外话,kissy框架,提出模块化的概念,所以很多的方法都包装到模块里面了,在你使用的时候,你只需要因为对应的模块即可。有种插件式开发的感觉,对于经常写程序开发的人来讲,比较熟悉也很容易接受。
这一步分析透彻后,我们需要做的是,去kissy模块化,这样才能把这个加密算法搬到你自己的论坛呀、站点呀这些地方。

//我们把类似于这样的结构
KISSY.add('kg/rsa/2.0.1/index', ['./jsbn','./rng'
],function (S, require, exports, module){//改为
var index=function() {=

全文有4个模块需要改动。
我们再把引入的模块修改一下

//修改1
var d = require('./jsbn'),f = require('./rng');//改为
var d = new jsbn();f = new rng();
//修改2
module.exports = i;
//改为
return i;

修改完后就可以写调用方法了

//str为加密的参数,pbk为公钥,exponent为公钥指数
function encrypt(str){var temp=new index();temp.prototype.setPublic(this.pbk,this.exponent);return temp.prototype.encrypt(str);}

贴上我修改后的rsa地址,方便各位学习
http://download.csdn.net/detail/u014577133/9575570

写在最后,rsa算法其实网上到处都有一大片,包括java版,.net版等等。我这里只是分享下我的心得体会,顺便熟悉下浏览器的调试模式,下断点的方式。
我的疑问:
淘宝的C端采用rsa对密码进行加密,那么服务器端肯定有私钥来进行解密。这个过程中我的密码是”123”,加密后传输到服务器,解密后密码为”123”,然后和数据库里面我的密码进行比对。那是不是数据库里面我的密码存储的就是明码”123”呢?如果真有一天淘宝数据库泄密,成万上亿的用户密码被泄露,这个损失肯定相当严重!
不过有可能服务器端又进行二次加密,比如md5加密,然后再和数据库中已经进行了md5加密的密码进行比较,这样就算泄露,也不会让普通人随随便便就登录。能起到一定的作用。那服务器如果还要进行md5加密的话,那每天那么多的并发量,服务器还要进行二次加密是不是就增加了服务器的负担,那又为何不直接在客户端进行加密后再传输呢?答案不得而知,我猜测也许是为了兼容部分老系统吧,所以才到服务端进行二次加密。

淘宝RSA分析与学习相关推荐

  1. 一、淘宝ua分析与学习之匿名函数

    写在前: 我属于比较懒段的非码农,在分析淘宝ua之前没正经学习过js,对js的理解也仅仅在与简单的运算表达式.由于最近项目上需要用到前端js,遂,开始慢慢关注js方面的文章.书籍.但是我太懒,都是三天 ...

  2. 淘宝SOA框架dubbo学习(2)--搭建Zookeeper注册中心服务

    2019独角兽企业重金招聘Python工程师标准>>> 继上一篇博文, 淘宝SOA框架dubbo学习(1) http://my.oschina.net/hanshubo/blog/3 ...

  3. 淘宝教育视频加速观看(在淘宝教育上看学习视频,需要加速,在谷歌浏览器上安装视频加速插件)

    淘宝教育视频加速观看(在淘宝教育上看学习视频,需要加速,在谷歌浏览器上安装视频加速插件) 1.在此网站上下载Video Speed Controller插件 https://extfans.com/ ...

  4. SQL数据分析淘宝用户分析实操

    sql也能做分析? 常见的数据清洗,预处理,数据分类,数据筛选,分类汇总,以及数据透视等操作,用SQL一样可以实现(除了可视化,需要放到Excel里呈现).SQL不仅可以从数据库中读取数据,还能通过不 ...

  5. 淘宝软件架构分析分工

    小组成员(排名不分任务量先后) 1.薄晰月  负责"反向代理机制"的学习与发表相关博客 个人博客链接:http://www.cnblogs.com/GG-TEN/p/5376571 ...

  6. 软件系统架构质量属性——淘宝网分析

    一.可用性 可用性与系统故障及其相关后果有关 所关注的方面:如何检测系统故障,系统故障发生的频度,出现故障会发生什么情况,允许系统有多长时间非正常运行,什么时候可以安全地消除故障,如何防止故障的发生以 ...

  7. 淘宝母婴用品分析(Excel)

    1.前期准备 数据来源 阿里巴巴天池:baby goods info data 字段含义 总共有两个csv文件,用excel打开. 此为婴儿信息表. 三个字段:用户ID, birthday:出生日期 ...

  8. 第二次作业:淘宝案例分析

    ---恢复内容开始--- 1.介绍产品的相关信息 1.1我选择的产品是淘宝 1.2选择淘宝的理由 (列表中没有我想要分析的所以随便找一个比较熟悉的==) 一个好的产品有两个 特性,当下十分流行并且经久 ...

  9. python商品销售情况数据分析_4-python数据分析-淘宝婴儿用品分析项目

    加载购买商品表的数据 购买商品表字段信息: 用户ID 商品ID 商品二级分类 商品一级分类 商品属性 购买数量 购买日期 importpandas as pdimportnumpy as npimpo ...

最新文章

  1. 拼多多退出春晚红包合作,由抖音补位!
  2. 解决电脑重启后 ubuntu 不能联网
  3. 通过命令行方式批量设置保留IP地址的代码
  4. poj1969---找规律
  5. python 复制文件并重命名_好书推荐 | Python 如此神奇,让繁琐工作自动化
  6. 在GridView里使用CheckBox
  7. 如何在ant里import
  8. 【linux】BootLoader简介(c语言编程)
  9. linux 命令赋权,linux赋权命令
  10. sht30温湿度传感器中文手册_DHT11温湿度传感器编程思路以及代码的实现
  11. 海康摄像头录制功能实现
  12. 魔兽世界暴雪隐藏密集
  13. 软件测试工程师岗位职责、岗位要求
  14. 怎么判断苹果开发者账号是否认证了
  15. 【Vue】从零搭建一个Vue项目
  16. Android进阶:Android零基础进阶到高级架构师
  17. 解决由于ntoskrnl.exe导致的蓝屏
  18. 解决pip装包报错ERROR: Cannot unistall ‘llvmlite‘. It is a distutils installed project and thus we cannot..
  19. Android开源项目分类
  20. css 文字不规则排版,CSS3文字排版

热门文章

  1. PostgreSQL pg_qualstats 解决索引缺失,添加索引
  2. SAP WM模块事务码(TCODE)大全
  3. java 使用 pdfbox 转图片 中文乱码,或者空白页面解决方案
  4. 简单通讯录管理系统(Java)
  5. html5 做屏幕保护效果,用vbscript实现修改屏幕保护的等待时间长度
  6. 特色烤麦芽的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  7. C语言中使用‘scanf’输入与‘printf’输出的几个例子
  8. C++/MFC/Python杀毒软件 安全卫士项目
  9. 如何发现品牌潜客?目标人群优选算法模型及实践解析
  10. django - migrate 重置