您的位置:首页 > Web前端 > JavaScript

水星mac1200R的密码加密方式

2017-01-03 00:00 1646 查看
之前介绍过如何通过脚本在局域网获取wan口ip:python读取路由信息
说到不知道它是怎么加密密码的,前几天闲得慌看了下,找到了这个函数。

js加密方法

//from web-static/lib/slp-ajax.js
securityEncode: function(input1, input2, input3)
{
var dictionary = input3;
var output = "";
var len, len1, len2, lenDict;
var cl = 0xBB, cr = 0xBB;

len1 = input1.length;
len2 = input2.length;
lenDict = dictionary.length;
len = len1 > len2 ? len1 : len2;

for (var index = 0; index < len; index++)
{
cl = 0xBB;
cr = 0xBB;

if (index >= len1)
{
cr = input2.charCodeAt(index);
}
else if (index >= len2)
{
cl = input1.charCodeAt(index);
}
else
{
cl = input1.charCodeAt(index);
cr = input2.charCodeAt(index);
}

output += dictionary.charAt((cl ^ cr)%lenDict);
}

return output;
},

orgAuthPwd: function(pwd)
{
var strDe = "RDpbLfCPsJZ7fiv";
var dic = "yLwVl0zKqws7LgKPRQ84Mdt708T1qQ3Ha7xv3H7NyU84p21BriUWBU43odz3iP4rBL3cD02KZciX"+
"TysVXiV8ngg6vL48rPJyAUw0HurW20xqxv9aYb4M9wK1Ae0wlro510qXeU07kV57fQMc8L6aLgML"+
"wygtc0F10a0Dg70TOoouyFhdysuRMO51yY5ZlOZZLEal1h0t9YQW0Ko7oBwmCAHoic4HYbUyVeU3"+
"sfQ1xtXcPcf1aT303wAQhv66qzW";

return $.securityEncode(strDe, pwd, dic);
},

python版

换成python的代码

def seurityEncode(password):
'''
首先,mercury的密码加密方式
这个函数是参照Mercury路由器的js脚本写的,拿到手的几个路由器的start参数和字典都是一样的
似乎并没有别的机制初始化starDe和dic
'''
output = ""
start = "RDpbLfCPsJZ7fiv"
dic = ("yLwVl0zKqws7LgKPRQ84Mdt708T1qQ3Ha7xv3H7NyU84p21BriUWBU43odz3iP4rBL3cD02KZciX"
"TysVXiV8ngg6vL48rPJyAUw0HurW20xqxv9aYb4M9wK1Ae0wlro510qXeU07kV57fQMc8L6aLgML"
"wygtc0F10a0Dg70TOoouyFhdysuRMO51yY5ZlOZZLEal1h0t9YQW0Ko7oBwmCAHoic4HYbUyVeU3"
"sfQ1xtXcPcf1aT303wAQhv66qzW")

lens = max(len(start),len(password))
for i in range(lens):
cl = 0xBB
cr = 0xBB
if i >= len(start):
cr = ord(password[i])
elif i >= len(password):
cl = ord(start[i])
else:
cl = ord(start[i])
cr = ord(password[i])
output += dic[(cl^cr)%len(dic)]
return output

测试

#python测试
In [1]: from mercury import seurityEncode
In [2]: seurityEncode("abcde")
Out[2]: 'W74zUbhc9TefbwK'

//chrome控制台输出
$.orgAuthPwd("abcde")
"W74zUbhc9TefbwK"

好像没毛病,不过也只能用在局域网

另外:

上网搜了下"RDpbLfCPsJZ7fiv"和dic的一部分,好像tp-link的和水星都是用的一样的加密方法和字典,哎,这真是
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python Mercury JavaScript