写了个 Node.js 命令行版的,测试了一下,和官方给出的 SSH 密码一样。
源码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| const Crypto = require('crypto');
var salt = { 'r1d': 'A2E371B0-B34B-48A5-8C40-A7133F3B5D88', 'others': 'd44fb0960aa0-a5e6-4a30-250f-6d2df50a' }
function getPasswd(sn) { var md5 = Crypto.createHash('md5'); const hex = md5.update(sn + getSalt(sn)).digest('hex') return hex.substring(0, 8); }
function getSalt(sn) { if (sn.includes('/')) { return swapSalt(salt['others']); } else { return salt['r1d']; } }
function swapSalt(s) { return s.split('-').reverse().join('-'); }
const SN = process.argv[2] console.log(`Usage: ${SN} SN` )
const passwd = getPasswd(SN) console.log('decrypt password:', passwd)
|
使用方法
1 2 3
| $ node index.js 36418/K1WW04216 Usage: 36418/K1WW04216 SN decrypt password: f25b355a
|
- 登录到路由器,没有 ssh 的,先 sudo apt-get install ssh
用户名:root
密码:f25b355a
- 看到
ARE U OK 即破解成功