【问题标题】:how to get serial number id Hard Disk in Linux using C or Java? [duplicate]如何使用 C 或 Java 在 Linux 中获取序列号 id 硬盘? [复制]
【发布时间】:2015-04-27 22:42:15
【问题描述】:

我想建立一个系统,我可以在其中根据硬盘序列号加密/解密某些东西,这样密钥就不能在计算机之间共享。

【问题讨论】:

标签: java c linux unix operating-system


【解决方案1】:

每个 Unix 变体如何获取硬盘的序列号是不同的。

对于 Linux,如果您以 root 身份运行,最直接的方法是使用“hdparm -i /dev/sda”或更准确地说是它使用的 C 代码(ioctl)。

序列号在 Linux 中通常没有用,因此如果您不是以 root 身份运行,则必须询问少数几个真正有用的子系统之一——udev。它使用序列号来唯一标识设备,并将此信息存储在 /run/udev/data(或 /var/run/udev/data)下的一个文件中,该文件的名称基于 Linux 分配的设备号。

找到的第一个磁盘的数据在 /var/run/udev/data/b8:0
第二个在 /var/run/udev/data/b8:16

这是一个文本文件。

顺便说一句:磁盘序列号不是一个好的加密密钥,正如您所见,它很容易找到,而且不像看起来那么随机。

【讨论】:

    猜你喜欢
    • 2014-01-11
    • 2010-11-24
    • 2011-06-01
    • 1970-01-01
    • 2011-05-10
    • 2014-12-31
    • 1970-01-01
    • 2019-06-16
    • 2011-05-04
    相关资源
    最近更新 更多