在机器视觉或者一些传统制造业行业里经常牵扯到软件加密算法,或者一些简单的加密,比如相机绑定,或者USB接口绑定之类的,那么针对这些硬件设备绑定加密方式,我这里简单的提供一个方法来实现:
方法很简单,从设备管理器里查找关心的USB设备,对比PID,VID和全球唯一标识GUID,当然被别人在驱动层挂了钩子修改注册表内容,这个方法就不适用了。以下是代码:
#pragma once
#include <afx.h>
#include <DShow.h>
#include <Windows.h>
#include <setupapi.h>
#include <vector>
#pragma comment(lib, "setupapi.lib")
/*
打开设备管理器里可以查看对应USB接口的详细信息
已配置设备 USB\VID_1E2F&PID_9801&MI_00\6&1a040c39&0&0000
VID 对应已配置信息的VID_1E2F
PID 对应已配置信息的PID_9801
类 GUID: {C166523C-FE0C-4A94-A586-F1A80CFBBF3E}
下面的GUID分别是16进制方式表示
GUID1 0xC166523C
GUID2 0xFE0C
GUID3 0x4A94
GUID4 0xA586
GUID5 0xF1A80CFBBF3E返回值:
返回TRUE 表示验证成功
返回FALSE 表示验证失败
*/
class UsbSerialnumberBasicInfo {
public:CString m_VID;CString m_PID;int m_GUID1;int m_GUID2;int m_GUID3;int m_GUID4;long long int m_GUID5;UsbS