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)