如何在Linux中使用C或Java获取序列号id硬盘?

时间:2015-02-25 19:03:21

标签: java c linux unix operating-system

我想制作一个系统,我可以根据硬盘序列号加密/解密某些内容,以便无法在计算机上共享密钥。

1 个答案:

答案 0 :(得分:0)

如何获取每个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

这是一个文本文件。

顺便说一句:磁盘序列号不是一个好的加密密钥,因为你看它很容易找到,并且没有随意的地方。