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;
}
发布评论