2024年4月8日发(作者:)

JavaScript通过WMI获取根据盘符获取U盘

物理序列号

一:达到的效果

根据UKeyTool生成的U盘文件xxxx_内的md5与U盘物理序列号+ xxxx_uKey+

界面读取文件自由串(50*10)计算的md5对比,如果一样,则允许登录,否则不允许登录

二:加密工具

1 原理

U盘序列号信息格式:vid_0537&pid_a703#192b0c00048a,其中192b0c00048a为U盘

的物理序列号(唯一);

U盘中的验证文件名为xxxx_;将U盘的物理序列号加工后保存在文件

xxxx_中,使U盘和文件一一对应。

2 加密步骤

1. 把U盘的物理序列号中的所有字母转换成大写,如192B0C00048A,标为串1;

2. 固定串xxxx_uKey,标为串2;

3. 随机生成50*10个的可见字符:ASCII范围33-126,标为串3;

4. 串1、串2、串3顺序合并,计算32位MD5(字母大写);

5. 创建文件ipbc_,写入字符串:File:xxxx_V3 USB Private key;

6. 换行,写入版本号,格式:Version:1.0.0.0

7. 换行,写入MD5值;

8. 换行,写入串3,每50个字符换行;

三:JavaScript解密

1 解密步骤

1. 把U盘的物理序列号中的所有字母转换成大写,如192B0C00048A,标为串1;

2. 固定串xxxx_uKey,标为串2;

3. 打开文件xxxx_,读入50*10个可见字符,标为串3;

4. 串1、串2、串3顺序合并,计算32位MD5(字母大写);

5. 打开文件xxxx_,读取MD5值;

6. 比较计算的和读取的MD5值是否相同,相同则通过验证,否则失败。

2 JavaScript读取U盘物理序列号(推荐方案3)

准备

1 读取U盘盘符

/**

* 判断是否有U盘并获取U盘盘符,只适用于IE?

* @returns {string} 返回U盘盘符

* @constructor

*/

function CheckUsb() {

var e, x;

var ForReading = 1,

RorWriting = 2;

var bfResult = '';

try {

var fso = new ActiveXObject("stemObject");

} catch(err) {

return bfResult;

}

e = new Enumerator();

for (; ! (); xt()) {

x = ();

if (ype == 1) {

if ( != "A:") {

bfResult += + ',';

}

}

}

return bfResult;

}