如何唯一标识C#中的USB密钥?

我希望能够检测何时插入USB钥匙。 此外,如果我能区分USB钥匙A和USB钥匙B,那么我的形状就更好了。 最后,如果我可以使用某种硬件序列号,MAC地址或任何其他的唯一标识密钥,那么我是最好的形状。

基本上我正在使用USB钥匙作为硬件encryption狗来“解锁”我的C#应用​​程序。

所有的硬盘都有一个序列号,USB闪存盘也没有什么不同。 这里有一篇文章,带有一个示例项目,展示了如何获取非易失性序列号 。 基本上你只需要枚举系统驱动器并获取PNPDeviceID属性。

您需要检索密钥的硬件ID 。

我看不到如何订阅插入事件,但您可以始终让用户单击一个按钮。

硬盘ID不是唯一的。 也许在理论上是这样,但实际上并不是这样。 这是没有任何破解,模拟器或任何特殊的程序。