如何从C#中唯一地识别USB键?

5

我希望能够检测到USB键的插入。此外,如果我可以区分USB键A和USB键B,则会更好。最后,如果我可以使用某种硬件序列号、MAC地址或其他方式唯一标识密钥,则是最佳情况。

基本上,我正在考虑使用USB键作为硬件加密锁以解锁我的C#应用程序。

3个回答

8

所有硬盘都有序列号,USB闪存驱动器也不例外。这篇文章提供了一个示例项目,展示了如何获取非易失性序列号(链接)。基本上,您只需要枚举系统驱动器并获取PNPDeviceID属性即可。


谢谢,获取串行号的方法非常完美。我不知道还能不能再“幸运”一次,学习一种在系统添加驱动器时获取事件通知的方法? - Erik
这里实际上有一个相关的问题,看起来很像我正在寻找的: <a href="https://dev59.com/xXVC5IYBdhLWcg3whBWj">点击<a/> - Erik

0

硬盘ID并不是唯一的。理论上可能是,但在实践中并非如此。这是没有任何破解、模拟器或特殊程序的情况下。


0

您需要检索密钥的硬件ID

我不知道如何订阅插入事件,但您可以让用户单击按钮。


我相信每次Windows格式化USB驱动器时,卷序列号都会改变。有一个单独的非易失性序列号,可能更好用。 - Beep beep

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接