第一次寫博客,但願你們多多支持哈。前段時間老闆讓我實現一個存儲系統的單節點限制的license系統,即在此環境下生成的license文件不能在別的機器上使用,接到任務我首先想到的是綁定硬件的惟一標識。 node
通過一系列的調研,發現: linux
1)cpu只能獲取cpu型號(即同種cpu的型號是相同的),不能獲取惟一標識(可能爲保護用戶隱私,不容許獲取cpu的惟一標識)。 加密
2)獲取硬盤的設備號等信息,發現機器重啓或者添加盤陣等設備後,其設備號等信息可能發生變化。 操作系統
3)網卡更換的概率比極大,且網卡地址能夠被僞造。 字符串
固然,這或許是我能力有限,沒有找到獲取硬件惟一標識的好辦法,因爲調研時間有限,經綜合考慮,決定採起硬件加軟件結合的辦法。採起三種限制策略: 博客
1)獲取cpu的型號(雖然不是惟一,但能做爲一個限制條件) 軟件
2)生成一個隨機字符串。 硬件
3)記錄license的inode(本身原創的嗷o(∩_∩)o ,經調研,linux下文件不移動的話其inode不會變化,並且inode只能由操做系統生成,不能隨意指定,因此不一樣環境下生成的文件的inode相同的機率不大,在license文件中記錄下本身的inode,若相同則說明是原來的文件,不相同的話則認爲用戶修改過)。 cpu
做爲數據存儲系統的license,除了單節點限制以外,還有時間限制、數據量限制等,在此不作贅述。license文件經加密後存儲到磁盤上。本license系統只是儘可能作到限制,若用戶重裝操做系統的話,就失效了。嘻嘻,微軟這麼強也防不住盜版呀,o(∩_∩)o 哈哈 數據
之後多寫寫數據存儲相關的博客,偶是數據存儲一菜鳥~~