求支付宝登录界面密码加密的处理过程

aduwuhan 2015-08-30 07:01:03
最近在研究目前市场上第三方支付在登录和支付过程中密码加密和传输上的处理方法,看是否有什么借鉴的。
以chrome支付宝登录为例:https://auth.alipay.com/login/index.htm
在这个页面中用户、密码在点击【登录】前是可以通过浏览器调试或其他方式获取到明文的,如在调试模式的console中
document.getElementById("password_rsainput").value
"111111"
但当用户点击【登录】后,发送给服务器的POST请求中的密码明显是做过加密的,如从homeB.htm的POST请求中可以看到:
ua:244n+qZ9mgNqgJnCG0WtMC3zbvMsMaxxr7be9s=|nOiH84TzgPyK+Y76j/yL+Fg=|neiHGXz6UeRW5k4rRCFWIUQrTtR4yW7cZtC1FbU=|mu6b9JEfggmfJpzlYfRn3k/BbMZ953DjWMtz/oIxliGU4Gz7VDGR|m++T/GIRfgtyBWoWeRypyngLi+CL+EMmhiY=|mOOM6Yws|meWK74oq|luKW+WcCqR6pGqzRo9F1zXrRZ9+r0KEFqga1Ea3cesh4CqUXvRGg0nnLe9NWJ4w7i+6B5IEhgQ==|l+GOEGMMfxBkEmUZdgN/BmkdaxJrBH4HfBNnEWgRfgRxCqoK|lOCT/JkHcgp+CXAfgOWR5pHilOKW5ZLqnOedIlEgVCFVIlYuWC9ULlstVSNQKlDPqsWxEXTU|le+AHnvIbNps1mTRdtRh13Pfbt1l0rfYrMO6zLoaug==|kuiHGXzPa91r0WPWcdNm0HTYadpi1bDfrMO/yL/MbMw=|k+SLFXAVegx4DWIecQ16CX4FfNx8|kOqFG37Nad9p02HUc9Fk0nbaa9hg17LdqcayxrrGvc66Gro=|kemGGH3Oatxq0GLXcNJn0XXZaNtj1LHeQDRANlktVSyM45D/mv+Q5JDskOuY4kLi|jvmWCG0IZxNnH3AEfQtkEGUWYhhhG7sb|j/WaBGHSdsB2zH7LbM57zWnFdMd/yK3Csd6q36zarNiuDq4=|jPaZB2LvnzOCMYk+TuhD603jRfdQ+J3yhumd6Jvtm++WNpY=|jfWaBGHSdsB2zH7LbM57zWnFdMd/yK3CXChSJEs/ST6e8YLtiO2C9oPwh/2L+Fj4|ivCfAWTpmTWEN484SO5F7UvlQ/FW/pv0h+ic6Zrtl+GXN5c=|i/GeAGXWcsRyyHrPaMp/yW3BcMN7zKnGst2p3K/YotSuDq4=|iP+QDmvYfMp8xnTBZsRxx2PPfs11wqfIvMe/0KTSp8i8ybrDuc62FrY=|ifOcAmfUcMZwynjNash9y2/DcsF5zqvEt9is2arQqN6pCak=|hvGeAGXWcsRyyHrPaMp/yW3BcMN7zKnGssu+0aXTqMezxbPFssWwELA=|h/2SDGnafsh+xHbDZMZzxWHNfM93wKXKvtGl06XTqN2mBqY=|hPyTDWjllTmIO4M0RPxK4lcyXcO3y77Rrd5+EWINaA1iFmAWYBttGroa|hf+QDmvYfMp8xnTBZsRxx2PPfs11wqfIu9Sg1qDWrdunB6c=|gviXCWzhkT2MP4cwQPhO5lM2WS1CNkA2QDtMOpo6|g/qVC27jkz+OPYUyQvpM5FE0WyddMkEuWixaIlQsX/9f|gPmWCG3gkDyNPoYxQflP51I3WCxfK0Q3WCxaLFQsWy6OLg==|gfiXCWzhkT2MP4cwQPhO5lM2WS1eKUY1Wi5YLlYsWy6OLg==|vseoNlPergKzALgPf8dx2WwJZhpjDH8QZBJkHWEWY8Nj|v8apN1LfrwOyAbkOfsZw2G0IZxthDn0SZhBmHGgQY8Nj|vMWqNFHcrACxAroNfcVz224LZBhjDH8QZBJkHmgQaclp|vcSrNVDdrQGwA7sMfMRy2m8KZRllCnkWYhRiGGAYY8Nj|usOsMlfaqga3BLwLe8N13WgNYhZlFnkKZRFnEWsRax6+Hg==|u8KtM1bbqwe2Bb0KesJ03GkMYxdkEH8MYxdhF20RZhq6Gg==|uMGuMFXYqAS1Br4JecF332oPYBRnEn0OYRVjFW4abBm5GQ==|ucCvMVTZqQW0B78IeMB23msOYRVmEH8MYxdhF2wabRGxEQ==|ts+gPlvWpgq7CLAHd8950WQBbhppHnECbRlvGWIabxe3Fw==|t86hP1rXpwu6CbEGds540GUAbxtoEH8MYxdhF2wVaR+/Hw==|tMOsMlfaqgW3HbEAZQp8CmURYhd4DHoMcAd7DKwM|tcKtM1YzXCpcKUYySzBfK10qWSpQJ4cn|ssWqNFHcrACxAroNfdtw2H7QdsRjy67BtcO32K3ZrcK2wLfCvsiwELA=|s8ukOl/Sog6/DLQDc9V+1nDeeMptxaDPUSVQKkUwRDCQ/4zjhuOM+I75j/yG/1//|sMqlO17Tow++DbUCcsp81GEEaxh3A3UCdAd9AaEB|scukOl/Sog6/DLQDc9V+1nDeeMptxaDPu9Sg1qHXpN+kBKQ=|rtm2KE0oRzJJNVovWCxDN0E2QTRMNpY2|r9i3KUzBsRe8FLIcugivB2INeAx2GWwbYA97DXoNdA9313c=|rNW6JEHMvBChEqodbctgyG7AZtRz277RqtyzwK/brdqi267SctI=|rdS7JUDNvRGgE6scbMphyW/BZ9Vy2r/Qq9i3xKvfqd6n0aLWdtY=|qtO8IkfKuhanFKwba81mzmjGYNJ13bjXrtW6yabSpNOq3arTc9M=|q9K9I0bLuxemFa0aasxnz2nHYdN03LnWrda5yqXRp9Cp06/VddU=|qN+wLkvGthmrAa0cbMl+z6rFsMOw36rRpMu/yb7EvMu+Hr4=|qdG+IEXIuBelD6MSYsdwwaTLVSFdKEcyST+f8IPsieyD94H2jPaO+Vn5|ptyzLUjFtRmoG6MUZMJpwWfJb9160rfYq8SwxrHLscmyErI=|p92yLEnEtBupA68ebst8zajHs9yo3qnTqdCkBKQ=|pNOg07zPoNW6zrnNotSs1rnBvdKo0L/Lv8in07zAtNut0b7Is9yrxLLLpNCky7/QptC/ybzTqcaww6zZpcq6wq3Yos29x6jdpcq51qPVus+61a7Bu9StwrrVos271KHOutWmybnNotKnyLjOodGmybnMtNur3qfIuM232KjcoM+416HOvsi806PVoM+/y73Sotahzr7Kst2t2aDPv8mz3KzZpcq6w6zcpgY=
support:000001
needTransfer:
CtrlVersion:1,1,0,1
loginScene:home
redirectType:
personalLoginError:
goto:
errorGoto:
errorVM:scene/homeB.vm
sso_hid:
site:
rds_form_token:KZHSvw6ARPvNKjgxWTPxPuJ9pdtr1ITl
json_tk:
method:
parentUrl:
logonId:1580123456789
superSwitch:true
noActiveX:false
passwordSecurityId:web|authcenter_querypwd_login|bb0d759d-dc28-4772-9f76-20a652c0c32aRZ13
qrCodeSecurityId:web|authcenter_qrcode_login|ff197569-e547-42b9-8cc7-14518303cb32RZ13
password_input:
password_rsainput:
J_aliedit_using:true
password:ckKVu3yW1KjjZ/C0wYBxAaKJV1yQi2Ah1iKj9j2UB5X1oRUfzG1zLWzyyT0sCpQXn6aUEZb6PGGUlwcxYvX7j0HVJnJIXJtLfIFGvXxcYGi/c9ACvTPxVYMfnXPafZBQKi3qnu0FtriLjqjYgmFpumay/Nf51am0c18mDoRsVR8qmNCXJN5xUkFGturRrTSXy7JpuIv97U6+QjWqspcjymW34deqVafSOlpKMpzu9lBH6Qy+cmH2AfbDNUKh3sCBpXLlakLAHYxSr6cNUx649ej3HgeXLsfzkdUCLE4hGDauNjjceLoYSliOLhaisb1u+YfqEg/Di8Alz20HUIi9rg==
J_aliedit_key_hidn:password
J_aliedit_uid_hidn:alieditUid
alieditUid:8727614ae4343e56d0c96bd0c58b9124
REMOTE_PCID_NAME:_seaside_gogo_pcid
_seaside_gogo_pcid:
_seaside_gogo_:
_seaside_gogo_p:
J_aliedit_prod_type:
security_activeX_enabled:false
J_aliedit_net_info:
checkCode:spdx
idPrefix:

我简单看了一下发现这个页面会调用一些诸如alipay.security的js的脚本,但把这些js脚本打开有点一团乱麻,各个方法名字用什么abcd这种命名,看不懂调用关系啊啊啊。。。。

有哪位大神能帮忙看看吗?密码的加密是在什么时候做的,怎么做的(如用到的算法)?
(PS:每次输入相同的密码但POST请求中password都不相同,我猜测像是一次一密。交换密钥又用的是什么协议和算法,加密密码有用的是什么算法?DES、RSA?)
非常感谢!
...全文
2840 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
plzzz 2016-08-06
  • 打赏
  • 举报
回复
HTTPS 连接是由浏览器自动加密了,只要服务器支持就行了, JS 这边不需要理会, 如果你想破解, 你必须拿到服务器上密钥
willhuo 2016-08-05
  • 打赏
  • 举报
回复
RSA,页面有公钥,不知道你搞定了没
aduwuhan 2015-08-31
  • 打赏
  • 举报
回复
@datarrow 能帮忙定位到点击提交后,计算password的js吗?
aduwuhan 2015-08-31
  • 打赏
  • 举报
回复
@oDianXiaoEr1 设断点抓加密操作,怎么做的能稍微详细点吗?谢谢
datarrow 2015-08-31
  • 打赏
  • 举报
回复
意见仅供参考: 密码的加密是在什么时候做的? 1、获得用户输入框中的内容;(此时明文显示,调试模式可能不获得到) 2、用户点击提交按钮触发事件,先调用加密模块加密,再提交。 加密算法? ua:244n+/BbMZ953DjWMtz/oIxliGU4Gz7VDGR|m++T/+6B5IEhgQ==|l+GOEGMMfxBkEmUZdgN 。。。 加密后 那个 == 乍一看像base64加密,但其中出现了 / | 等base64不具有的字符,肯定是其 采用类似base64 或全新的自有算法了(即不一定采用哪种通用加密程序,难以轻易找到通用破译程序)。 这个密码很可能与页面 form_token 有关,每一次提交,在服务器端、和用户端均有口令,匹配则确认此次提交有效。 如服务器端输出 form_token(或页面其他特定字符串) 不停变换,将这个字符串作为根密钥与用户输入内容混合加密,形成 一次一密。 rds_form_token:KZHSvw6ARPvNKjgxWTPxPuJ9pdtr1ITl alieditUid:8727614ae4343e56d0c96bd0c58b9124
aduwuhan 2015-08-31
  • 打赏
  • 举报
回复
主要是找不到是在哪一步加的密,对应的js在哪。
飞翔小Teemo 2015-08-31
  • 打赏
  • 举报
回复
以前抓webqq的时候,他都是在js里加密的,你可以设断点试试
顾小林 2015-08-30
  • 打赏
  • 举报
回复
猜测,一般都是不可逆向加密,然后加上对称加密。我们以前做加密的时候,就是先进性md5加密,然后用了另一个对称加密方式,具体忘了。 你硬生生猜测他们的加密过程,不好搞。

87,955

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧