當(dāng)前位置:
首頁(yè) >
前端技术
> javascript
>内容正文
javascript
TL-WR886N密码JS加密
生活随笔
收集整理的這篇文章主要介紹了
TL-WR886N密码JS加密
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
網(wǎng)頁(yè)源碼:
很明顯又是JS解壓縮了,跟進(jìn)pageOnload后覺得有點(diǎn)麻煩,我就直接下XHR網(wǎng)址斷點(diǎn)了,輸入密碼提交后直接就在jquery的代碼里斷下了
h.send(a.hasContent && a.data || null); //a.data也就是實(shí)際發(fā)送的Body了然后通過(guò)棧回溯先到Ajax函數(shù)
r.send(u, d)到?sendAjaxReq函數(shù)
$.ajax(a);再到Auth函數(shù)
auth: function (a, b, c) {$.accountStatus.logoutHandle = !1;(a == p || 0 == a.length) && b && b(EUNAUTH);return $.sendAjaxReq('', {method: 'do',login: {password: a}}, function (c) {var d = c[ERR_CODE];ENONE == d ? ($.session = decodeURIComponent(c.stok), $.setLgPwd(a), $.authRltObj.authStatus = !0) : ($.authRltObj.authStatus = !1, $.parseAuthRlt(c.data));return b && b(d)}, c || 'undefined' === typeof c, 'json')}a也就是加密后的字符串
再回溯就到最后一段解碼后的JS代碼里了
function h() {var a = id('lgPwd');$.auth($.orgAuthPwd(a.value), function (b) {b == ENONE ? (a.value = '', $.authRltObj.bHandLg = !0, unloadLogin()) : g(parseInt($.authRltObj.code))})}a.value也就是原始字符串,通過(guò)orgAuthPwd函數(shù)后傳到auth函數(shù)
查找orgAuthPwd,和容易就找到
orgAuthPwd: function (a) {return $.securityEncode('RDpbLfCPsJZ7fiv', a, 'yLwVl0zKqws7LgKPRQ84Mdt708T1qQ3Ha7xv3H7NyU84p21BriUWBU43odz3iP4rBL3cD02KZciXTysVXiV8ngg6vL48rPJyAUw0HurW20xqxv9aYb4M9wK1Ae0wlro510qXeU07kV57fQMc8L6aLgMLwygtc0F10a0Dg70TOoouyFhdysuRMO51yY5ZlOZZLEal1h0t9YQW0Ko7oBwmCAHoic4HYbUyVeU3sfQ1xtXcPcf1aT303wAQhv66qzW')},很明顯securityEncode就是加密函數(shù),跟進(jìn)后是如下代碼
securityEncode: function (a, b, c) {var e = '',f,g,h,k,l = 187,n = 187;g = a.length;h = b.length;k = c.length;f = g > h ? g : h;for (var p = 0; p < f; p++) n = l = 187,p >= g ? n = b.charCodeAt(p) : p >= h ? l = a.charCodeAt(p) : (l = a.charCodeAt(p), n = b.charCodeAt(p)),e += c.charAt((l ^ n) % k);return e},python如下:
def securityEncode(encrypt,data,salt):eecode = ''saltLen = len(salt)dataLen = len(data)encryptLen = len(encrypt)maxLenInSaltData = dataLen>sataLen?dataLen:sataLenfor index in 0,maxLenInSaltData:n=l=187index >= saltLen ? n = data.charCodeAt(index) : index >= dataLen ? l = encrypt.charCodeAt(index) : (l = encrypt.charCodeAt(index), n = data.charCodeAt(index)),encode += salt.charAt((l ^ n) % saltLen ); return encode?
總結(jié)
以上是生活随笔為你收集整理的TL-WR886N密码JS加密的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 小波情结[转载]
- 下一篇: 2017.12.20 静态网页小实战