Linux下如何获得U盘物理序列号
毕业设计要做一个Linux环境中基于U盘的信息加密系统,要取得U盘的物理序列号,经过MD5运算得到一个散列值,作为一个密钥进行文件的加密解密,但是不知道如何获得U盘的物理序列号,请各位高手指教。
- C/C++ code
#include <stdio.h>
#include <sys/ioctl.h>
#include <linux/hdreg.h>
#include <sys/fcntl.h>int main()
{
struct hd_driveid id;int fd = open("/dev/hda", O_RDONLY|O_NONBLOCK);
if (fd < 0) {
perror("/dev/hda");
return 1; }if(!ioctl(fd, HDIO_GET_IDENTITY, &id))
{
printf("Serial Number=%s\n",id.serial_no);
}return 0;
}
cat /proc/scsi/usb-storage
Host scsi1: usb-storage
Vendor: Kingston
Product: DataTraveler 2.0
Serial Number: 001478081A5A5C8719160437
Protocol: Transparent SCSI
Transport: Bulk
Quirks:
mark
cat /proc/scsi/usb-storage/(usb口在主板上定义ID)