java - 如何获得计算机的唯一标识符?

标签 java c++ c windows java-native-interface

<分区>

我正在用 Java 编写游戏服务器,我需要一种方法来获取计算机的唯一标识符(多帐户保护),目标平台是 Windows >= XP。我用纯 Java 和 JNI 测试了很多方法:

  • MAC 地址 - 非常容易更改,冲突几率高
  • (JNI) 主板 SN - 并非总是如此,碰撞几率很高
  • (JNI) 磁盘驱动器 SN - 无法使用 WMI 按磁盘号检测磁盘驱动器,碰撞几率很小,在 Windows XP 上不起作用(没有序列号字段)
  • 隐藏文件夹中的文件 - Windows 重新安装后不保存,如果我知道它在哪里可以修改或删除。
  • (JNI) Windows GUID - 高冲突几率,在 Windows 重新安装后不保存。

还有别的办法吗?

最佳答案

我可以建议你使用 CPUID 我已经将它用于我的软件许可

干杯:)

关于java - 如何获得计算机的唯一标识符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18031022/

相关文章:

java - AWS Java SDK 传输管理器仅下载文件夹结构

java - native 代码数据库可以进行逆向工程吗?

c# - 将剪贴板内容存储到字节数组?

c++ - 使用 FileStorage API 加载的 cv::Mat 的可用内存

c++ - 如何在编译时区分 -std=c++17 和 -std=gnu++17 ?检查宏?

c - 推荐的 Clang 命令行选项

C - 将结构设置为 null(赋值中的类型不兼容)

java - Spark 2.2.0 API : Which one should i prefer Dataset with Groupby combined with aggregate or RDD with ReduceBykey

c - 将百分比值分配给一系列值

java - 设置 JComboBox 的背景?