我正在使用Java编写游戏服务器,需要一种获取计算机唯一标识符的方法(用于多账户保护),目标平台是Windows >= XP。我尝试了很多用纯Java和JNI来实现的方式:
- MAC地址- 很容易更改,碰撞概率高
- (JNI) 主板序列号- 不总是可用,碰撞概率高
- (JNI) 磁盘驱动器序列号- 无法通过磁盘字母检测到磁盘驱动器,冲突几率小,不适用于Windows XP(没有SerialNumber字段)
- 隐藏文件夹中的文件- 在Windows重新安装后不会保存,如果知道位置可以修改或删除。
- (JNI) Windows GUID- 冲突概率高,在Windows重新安装后不会保存。
还有其他方法吗?