序列號(hào)等價(jià)于注冊(cè)碼,是軟件發(fā)行商的一種維權(quán)手段,也就是正版軟件的一個(gè)身份證。本質(zhì):防止盜版、按功能收費(fèi)等。
目前,商用軟件和共享軟件絕大部份都是采用注冊(cè)碼授權(quán)的方式來(lái)保證軟件本身不被盜用,以保證自身的利益。盡管很多常用的許多軟件系統(tǒng)的某些版本已經(jīng)被別人破解,但對(duì)于軟件特殊行業(yè)而言,注冊(cè)碼授權(quán)的方式還是一種保護(hù)軟件系統(tǒng)本身的一種有效的手段。
序列號(hào)一般會(huì)和產(chǎn)品的名稱(chēng)(具體到硬件產(chǎn)品的型號(hào)、軟件產(chǎn)品的版本號(hào))、產(chǎn)品的使用期限(具體到截止日期)一起發(fā)布。
以下是一款我曾經(jīng)試用過(guò)的美國(guó)軟件產(chǎn)品Silver-peak注冊(cè)碼/序列號(hào)申請(qǐng)回復(fù)郵件的全文:
Hello,
The license key for your Silver Peak trial is ready to be installed. This is one of two mails you will receive with unique license keys. Deploy the Silver Peak Virtual Appliance you downloaded at each end of the WAN link you plan to optimize. Once deployed, install the unique license key below on one appliance and the unique license key from the second email on the other appliance to enable optimization.
Product: VX-2000
License Key:
P6F0-lBmL-34Pm-IZ3m-3MGL-s2ND-eLKC-+3pe-HROq-VMGQ-spH/-kOBb-LJOV-QC3p-nPw1-OJGy-KUem-egFc-sXWB-uDwm-goPa-gw==
Your license will expire on: Mon Jan 19 2015
Before you start your trial, we recommend you visit the Silver Peak Marketplace website and read the ‘Getting Started’ page:
http://marketplace.silver-peak.com/products/vx-virtual-software/vx-2000.html
If you have any questions about installing and configuring your virtual appliance, you can contact the Silver Peak support team directly. The support team can be reached in one of three ways:
Via the support center at http://www.silverpeaksystems.com/support/portal_login.asp (you should have received an email with instructions on how to enable your account)
By phone at 877-210-7325 / 408-935-1850
By email at [email protected]
2.序列號(hào)/注冊(cè)碼的原理
一般是以計(jì)算機(jī)硬件(如主板,網(wǎng)卡,硬盤(pán))的唯一序列號(hào)作為注冊(cè)源,通過(guò)一定的算法(即注冊(cè)機(jī))形成所謂的注冊(cè)碼。一般的程序通過(guò)在程序中設(shè)置一個(gè)全局變量來(lái)進(jìn)行注冊(cè)碼的記錄。
windows下次數(shù)可以在注冊(cè)表里設(shè)置一個(gè)鍵值來(lái)判斷,若有此鍵,則說(shuō)明已經(jīng)到期。(網(wǎng)上說(shuō)法,個(gè)人感覺(jué)不可靠,因?yàn)樽?cè)表也可以修改。)
一般情況下軟件的注冊(cè)是通過(guò)比較來(lái)實(shí)現(xiàn)的,也就是說(shuō)軟件本身就是注冊(cè)機(jī),因?yàn)樗旧砭陀袀€(gè)真正的注冊(cè)碼,用他來(lái)和你所輸入的注冊(cè)碼做比較。不過(guò)有的是明碼比較有的是加密比較,以明碼比較來(lái)說(shuō):我們已經(jīng)知道了軟件自己可能會(huì)產(chǎn)生注冊(cè)碼的有的在內(nèi)存中有的在軟件中有的在注冊(cè)表中,更有甚者是有個(gè)通用的萬(wàn)能注冊(cè)碼。
輸入注冊(cè)碼成功是因?yàn)檐浖杏昧颂D(zhuǎn),也就是說(shuō)。當(dāng)你輸入的號(hào)碼和真正的注冊(cè)碼比較完的時(shí)候有個(gè)跳轉(zhuǎn)。
大部分注冊(cè)算法的原理是:軟件或者用戶(hù)自己觸發(fā)了軟件的注冊(cè)模塊軟件跳轉(zhuǎn)到注冊(cè)認(rèn)證模塊。彈出注冊(cè)窗口用戶(hù)輸入注冊(cè)名+注冊(cè)碼A,把它們存放在內(nèi)存中。然后軟件的注冊(cè)碼驗(yàn)證部分根據(jù)用戶(hù)輸入的注冊(cè)名生成正確的注冊(cè)碼B并和用戶(hù)輸入的注冊(cè)碼A做對(duì)比。如果結(jié)果為相同則注冊(cè)通過(guò),并運(yùn)行“注冊(cè)成功”后面的程序分支,比如解除各種軟件限制。如果不相同則提示“無(wú)效的注冊(cè)碼,請(qǐng)重新輸入!”或者“Invalid key!”等等警告。如下圖所示:

圖 1 注冊(cè)截圖
原理摘自:
http://blog.csdn.net/jacky_think/article/details/4565241
3.注冊(cè)碼/序列號(hào)授權(quán)分類(lèi)
通常而言,注冊(cè)碼授權(quán)方式有以下幾種方式:
(1)安裝序列號(hào)方式
這是最為常用的方式,Mircosoft提供的產(chǎn)品(例如:Windows系列產(chǎn)品、office系列產(chǎn)品等等)都是采用這種方式。通過(guò)一種復(fù)雜的算法生成安裝序列號(hào),在安裝過(guò)程中,安裝程序?qū)τ脩?hù)輸入的安裝序列號(hào)進(jìn)行校驗(yàn)來(lái)驗(yàn)證該系統(tǒng)是否被合法,從而完成授權(quán)。

圖 2 Windows安裝序列號(hào)方式
(2)用戶(hù)名+序列號(hào)方式
即軟件系統(tǒng)的供應(yīng)商給用戶(hù)提供有效的用戶(hù)名和序列號(hào),用戶(hù)在安裝過(guò)程或啟動(dòng)過(guò)程中輸入有效的用戶(hù)名和序列號(hào),系統(tǒng)通過(guò)算法校驗(yàn)通過(guò)后完成軟件授權(quán)。

圖 3 用戶(hù)名+序列號(hào)方式
(3)在線(xiàn)注冊(cè)方式
用戶(hù)安裝系統(tǒng)后,通過(guò)網(wǎng)絡(luò)進(jìn)行注冊(cè)授權(quán)。軟件系統(tǒng)的供應(yīng)商事先已經(jīng)登記了用戶(hù)的信息,用戶(hù)在線(xiàn)注冊(cè)時(shí),供應(yīng)商的注冊(cè)系統(tǒng)對(duì)用戶(hù)的信息進(jìn)行驗(yàn)證。用戶(hù)身份有效時(shí),注冊(cè)系統(tǒng)生成一個(gè)憑證信息,軟件系統(tǒng)根據(jù)憑證信息完成授權(quán)。

圖 4 在線(xiàn)注冊(cè)方式
(4)激活碼方式
用戶(hù)安裝系統(tǒng)后,軟件系統(tǒng)會(huì)根據(jù)用戶(hù)機(jī)器的關(guān)鍵信息(例如:mac地址、CPU序列號(hào)、硬盤(pán)序列號(hào)等等)生成一個(gè)注冊(cè)憑證(也可稱(chēng)為注冊(cè)碼),用戶(hù)將這個(gè)注冊(cè)憑證發(fā)送給軟件供應(yīng)商,供應(yīng)商通過(guò)注冊(cè)憑證生成一個(gè)激活碼。用戶(hù)輸入激活碼,軟件系統(tǒng)完成授權(quán)。

圖 5 激活碼方式
4.注冊(cè)碼/序列號(hào)組成
(1)產(chǎn)品版本:限定具體到哪個(gè)版本、同產(chǎn)品的其他版本不能用。
(2)到期時(shí)間:限定截止服務(wù)運(yùn)行時(shí)間,到給定截止前一周會(huì)有界面提示和郵件提醒。
(3)唯一標(biāo)識(shí):限定一個(gè)軟件產(chǎn)品和MAC地址或者磁盤(pán)UUID(linux系統(tǒng))/GUID(Windows系統(tǒng))綁定。
(4)預(yù)留字段:用于分模塊限定核心功能、分模塊收費(fèi)等。
以下是Silver-peak產(chǎn)品序列號(hào)使用期限截止前一周前郵件提示全文:
Hello,
This is to notify you that the Proof of Concept currently in process at [email protected] will expire on Wed Jan 21 2015.
This affects the following appliances, shipped on Mon Dec 22 2014:
VX-2000, S/N 001BBC03A8E9
VX-2000, S/N 001BBC03A8EA
If you have questions, please contact your account executive (Tricia Png, [email protected]).
Thank you,
Silver Peak Systems
5.獲取機(jī)器的唯一標(biāo)識(shí)
上面的分析可知,我們的軟件肯定要安裝到硬件設(shè)備上,為了管控亂拷貝現(xiàn)象或盜版使用現(xiàn)象,必須獲取硬件設(shè)備的唯一標(biāo)識(shí)。通過(guò)該唯一標(biāo)識(shí)生成注冊(cè)碼/序列號(hào)。
有了設(shè)備的唯一編號(hào),我們就可以實(shí)現(xiàn)更好的軟件的授權(quán)機(jī)制,還可以利用它來(lái)限制客戶(hù)端軟件訪問(wèn)后臺(tái)服務(wù)的權(quán)限,從而提高系統(tǒng)的安全性。
通用唯一識(shí)別碼(英語(yǔ):Universally Unique Identifier,簡(jiǎn)稱(chēng)UUID)是一種軟件建構(gòu)的標(biāo)準(zhǔn),亦為自由軟件基金會(huì)組織在分散式計(jì)算環(huán)境領(lǐng)域的一部份。
UUID的目的,是讓分散式系統(tǒng)中的所有元素,都能有唯一的辨識(shí)信息,而不需要通過(guò)中央控制端來(lái)做辨識(shí)信息的指定。如此一來(lái),每個(gè)人都可以創(chuàng)建不與其它人沖突的UUID。在這樣的情況下,就不需考慮數(shù)據(jù)庫(kù)創(chuàng)建時(shí)的名稱(chēng)重復(fù)問(wèn)題。目前最廣泛應(yīng)用的UUID,是微軟公司的全局唯一標(biāo)識(shí)符(GUID),而其他重要的應(yīng)用,則有Linux ext2/ext3文件系統(tǒng)、LUKS加密分區(qū)、GNOME、KDE、Mac OS X等等。另外我們也可以在e2fsprogs包中的UUID庫(kù)找到實(shí)現(xiàn)。
UUID是指在一臺(tái)機(jī)器上生成的數(shù)字,它保證對(duì)在同一時(shí)空中的所有機(jī)器都是唯一的。通常平臺(tái)會(huì)提供生成的API。按照開(kāi)放軟件基金會(huì)(OSF)制定的標(biāo)準(zhǔn)計(jì)算,用到了全局唯一的IEEE機(jī)器識(shí)別號(hào)、納秒級(jí)時(shí)間、芯片ID碼和許多可能的數(shù)字。
如果你在生成一個(gè)UUID之后,過(guò)幾秒又生成一個(gè)UUID,則第一個(gè)部分不同,其余相同(實(shí)際測(cè)試結(jié)果每次都不同)。即每次生成的UUID都是不同的。
UUID由以下幾部分的組合:
- 1 全局唯一的IEEE機(jī)器識(shí)別號(hào)。(如果有網(wǎng)卡,從網(wǎng)卡MAC地址獲得;沒(méi)有網(wǎng)卡,以其他方式獲得)
- 2 納秒級(jí)時(shí)間
- 3 芯片ID碼
- 4 許多可能的數(shù)字
UUID的唯一缺陷在于生成的結(jié)果串會(huì)比較長(zhǎng)。關(guān)于UUID這個(gè)標(biāo)準(zhǔn)使用最普遍的是微軟的GUID(Globals Unique Identifiers)。在ColdFusion中可以用CreateUUID()函數(shù)很簡(jiǎn)單地生成UUID,其格式為:xxxxxxxx-xxxx- xxxx-xxxxxxxxxxxxxxxx(8-4-4-16),其中每個(gè)x是0-9 a-f 范圍內(nèi)的一個(gè)十六進(jìn)制的數(shù)字。而標(biāo)準(zhǔn)的UUID格式為:
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12)
5.1不同操作系統(tǒng)設(shè)備的唯一標(biāo)識(shí)
(1)Windows系統(tǒng)GUID
全局唯一標(biāo)識(shí)符,簡(jiǎn)稱(chēng)GUID(發(fā)音為/?ɡu??d/或/?ɡw?d/),是一種由算法生成的唯一標(biāo)識(shí),通常表示成32個(gè)16進(jìn)制數(shù)字(0-9,A-F)組成的字符串,如:{
21EC2020-3AEA-1069-A2DD-08002B30309D},它實(shí)質(zhì)上是一個(gè)128位長(zhǎng)的二進(jìn)制整數(shù)。GUID一詞有時(shí)也專(zhuān)指微軟對(duì)UUID標(biāo)準(zhǔn)的實(shí)現(xiàn)。
GUID的主要目的是產(chǎn)生完全唯一的數(shù)字。在理想情況下,任何計(jì)算機(jī)和計(jì)算機(jī)集群都不會(huì)生成兩個(gè)相同的GUID。GUID的總數(shù)也足夠大,達(dá)到了2128(3.4×1038)個(gè),所以隨機(jī)生成兩個(gè)相同GUID的可能性是非常小的,但并不為0。所以,用于生成GUID的算法通常都加入了非隨機(jī)的參數(shù)(如時(shí)間),以保證這種重復(fù)的情況不會(huì)發(fā)生。
[維基百科]
https://zh.wikipedia.org/wiki/%E5%85%A8%E5%B1%80%E5%94%AF%E4%B8%80%E6%A0%87%E8%AF%86%E7%AC%A6
(2)Linux系統(tǒng)UUID
Linux UUID的作用及意義
原因1:它是真正的唯一標(biāo)志符
UUID為系統(tǒng)中的存儲(chǔ)設(shè)備提供唯一的標(biāo)識(shí)字符串,不管這個(gè)設(shè)備是什么類(lèi)型的。如果你在系統(tǒng)中添加了新的存儲(chǔ)設(shè)備如硬盤(pán),很可能會(huì)造成一些麻煩,比如說(shuō)啟動(dòng)的時(shí)候因?yàn)檎也坏皆O(shè)備而失敗,而使用UUID則不會(huì)有這樣的問(wèn)題。
原因2:設(shè)備名并非總是不變的
自動(dòng)分配的設(shè)備名稱(chēng)并非總是一致的,它們依賴(lài)于啟動(dòng)時(shí)內(nèi)核加載模塊的順序。如果你在插入了USB盤(pán)時(shí)啟動(dòng)了系統(tǒng),而下次啟動(dòng)時(shí)又把它拔掉了,就有可能導(dǎo)致設(shè)備名分配不一致。
使用UUID對(duì)于掛載移動(dòng)設(shè)備也非常有好處──例如我有一個(gè)24合一的讀卡器,它支持各種各樣的卡,而使用UUID總可以使同一塊卡掛載在同一個(gè)地方。
原因3:ubuntu中的許多關(guān)鍵功能現(xiàn)在開(kāi)始依賴(lài)于UUID。
【長(zhǎng)度縮減可以Base64編碼】
https://zh.wikipedia.org/wiki/%E5%85%A8%E5%B1%80%E5%94%AF%E4%B8%80%E6%A0%87%E8%AF%86%E7%AC%A6
5.2獲取唯一標(biāo)識(shí)方法
(1)Windows系統(tǒng)機(jī)器或者Linux系統(tǒng)機(jī)器獲取方法

圖 6 Windows機(jī)器的Guid

圖 7 Linux機(jī)器的uuid
Windows系統(tǒng)&Linux系統(tǒng)獲取uuid統(tǒng)一通用代碼(已經(jīng)測(cè)試過(guò),測(cè)試結(jié)果見(jiàn)上面截圖):
#include <stdio.h>
#include <string>
#include <IOStream>
#ifdef WIN32
#include <objbase.h>
#else
#include <uuid/uuid.h>
#endif
using namespace std;
#define MAX_LEN 128
/*
**@brief: get windows guid or linux uuid
**@return: string type windows guid or linux uuid
*/
string GetGuid()
{
char szuuid[MAX_LEN] = {0};
#ifdef WIN32
GUID guid;
CoCreateGuid(&guid);
_snprintf_s(
szuuid,
sizeof(szuuid),
"{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}",
guid.Data1, guid.Data2, guid.Data3,
guid.Data4[0], guid.Data4[1],
guid.Data4[2], guid.Data4[3],
guid.Data4[4], guid.Data4[5],
guid.Data4[6], guid.Data4[7]);
#else
uuid_t uuid;
uuid_generate(uuid);
uuid_unparse(uuid, szuuid);
#endif
return std::string(szuuid);
}
int main()
{
string strGuid = GetGuid();
cout << strGuid.c_str() << endl;
return 0;
}
(2)Android/ target=_blank class=infotextkey>安卓手機(jī)設(shè)備(沒(méi)有驗(yàn)證)
DEVICE_ID
這是Android系統(tǒng)為開(kāi)發(fā)者提供的用于標(biāo)識(shí)手機(jī)設(shè)備的串號(hào),也是各種方法中普適性較高的,可以說(shuō)幾乎所有的設(shè)備都可以返回這個(gè)串號(hào),并且唯一性良好。
這個(gè)DEVICE_ID可以同通過(guò)下面的方法獲取:
TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); String DEVICE_ID = tm.getDeviceId();
它會(huì)根據(jù)不同的手機(jī)設(shè)備返回IMEI,MEID或者ESN碼,但在使用的過(guò)程中有以下問(wèn)題:
非手機(jī)設(shè)備:最開(kāi)始搭載Android系統(tǒng)都是手機(jī)設(shè)備,而現(xiàn)在也出現(xiàn)了非手機(jī)設(shè)備:如平板電腦、電子書(shū)、電視、音樂(lè)播放器等。這些設(shè)備沒(méi)有通話(huà)的硬件功能,系統(tǒng)中也就沒(méi)有TELEPHONY_SERVICE,自然也就無(wú)法通過(guò)上面的方法獲得DEVICE_ID。
權(quán)限問(wèn)題:獲取DEVICE_ID需要READ_PHONE_STATE權(quán)限,如果只是為了獲取DEVICE_ID而沒(méi)有用到其他的通話(huà)功能,申請(qǐng)這個(gè)權(quán)限一來(lái)大才小用,二來(lái)部分用戶(hù)會(huì)懷疑軟件的安全性。
廠商定制系統(tǒng)中的Bug:少數(shù)手機(jī)設(shè)備上,由于該實(shí)現(xiàn)有漏洞,會(huì)返回垃圾,如:zeros或者asterisks
【參考】
http://my.oschina.net/596179991/blog/619242
5.3不使用MAC 地址作為唯一標(biāo)識(shí)的原因
(1)有的Windows、Linux設(shè)備或者虛擬機(jī)可能沒(méi)有網(wǎng)卡。
(2)對(duì)于安卓設(shè)備
可以使用手機(jī)Wifi或藍(lán)牙的MAC地址作為設(shè)備標(biāo)識(shí),但是并不推薦這么做,原因有以下兩點(diǎn):
硬件限制:并不是所有的設(shè)備都有Wifi和藍(lán)牙硬件,硬件不存在自然也就得不到這一信息。
獲取的限制:如果Wifi沒(méi)有打開(kāi)過(guò),是無(wú)法獲取其Mac地址的;而藍(lán)牙是只有在打開(kāi)的時(shí)候才能獲取到其Mac地址。
6.關(guān)于破解&安全性
不論是采用哪種方式來(lái)進(jìn)行授權(quán),理論上都是可以被破解的。只要破解者發(fā)現(xiàn)了軟件授權(quán)機(jī)制和原理則任何保護(hù)機(jī)制都將化為烏有。因此,只能夠通過(guò)選擇復(fù)雜的算法和機(jī)制來(lái)增加破解者的破解難度,從而在在一定的時(shí)間內(nèi)保證軟件不被盜用。
RSA算法(非對(duì)稱(chēng)加密算法)是一個(gè)廣泛用于加密和數(shù)字簽名的算法,可以適用用戶(hù)名+序列號(hào)、在線(xiàn)注冊(cè)、激活碼等軟件保護(hù)方式。
RSA算法是第一個(gè)能同時(shí)用于加密和數(shù)字簽名的算法,也易于理解和操作。RSA也是被研究得最廣泛的公鑰算法,從提出到現(xiàn)在已近二十年,經(jīng)歷了各種攻擊的考驗(yàn),逐漸為人們接受,普遍認(rèn)為是目前最優(yōu)秀的公鑰方案之一。
【參考RSA實(shí)現(xiàn)軟件注冊(cè)碼原理】
http://blog.csdn.net/scollins/article/details/5694306
設(shè)想的用戶(hù)使用序列號(hào)的流程及可能存在的問(wèn)題:

圖 8 用戶(hù)使用序列號(hào)流程
(1)聯(lián)機(jī)驗(yàn)證是一種很好的防止破解的方法
優(yōu)點(diǎn):簡(jiǎn)單、高效、直觀。
缺點(diǎn):針對(duì)軟件的使用客戶(hù)情況不同,部分客戶(hù)是內(nèi)網(wǎng)機(jī)器,無(wú)法連接外網(wǎng),也就無(wú)法聯(lián)網(wǎng)驗(yàn)證。
(2)關(guān)于序列號(hào)拷貝問(wèn)題
之前采用過(guò)一種方法,如果涉及兩臺(tái)設(shè)備(服務(wù)端、客戶(hù)端)之間通信的,可以通過(guò)如下判定禁用復(fù)制序列號(hào)、修改Mac地址的情況。

圖 9 通信的角度中斷序列號(hào)復(fù)制問(wèn)題
(3)UUID的弊端
如果將一臺(tái)機(jī)器的UUID拷貝到另一臺(tái)機(jī)器,就類(lèi)似修改Mac地址的方法達(dá)到欺騙的目的。
由于目前沒(méi)有找到通過(guò)UUID反推Mac地址的方法。設(shè)想的解密那里只能通過(guò)解密到UUID,不能繼續(xù)解析到Mac地址或者磁盤(pán)UUID。
復(fù)雜一勞永逸的解決方案:UUID不通過(guò)系統(tǒng)生成,自己寫(xiě)算法生成。這樣生成和解析都可控。
簡(jiǎn)單的解決方案:假定設(shè)備都裝了網(wǎng)卡,通過(guò)實(shí)際網(wǎng)卡(非虛擬網(wǎng)卡)的Mac地址充當(dāng)設(shè)備UUID。
安全性問(wèn)題的以上3點(diǎn)需要花時(shí)間研究。
7.構(gòu)想的序列號(hào)生成方案
下圖是生成序列號(hào)與反查序列號(hào)界面截圖(構(gòu)想)。

圖 10 序列號(hào)生成軟件
下圖是序列號(hào)生成流程圖(構(gòu)想)。
第一步:通過(guò)5.2(1)方法獲取安裝設(shè)備的UUID,如:
9d669361-7f8a-4f97-b08a-488e4a92ee52;該UUID應(yīng)該存儲(chǔ)在設(shè)備的軟件安裝路徑一份,以備對(duì)比驗(yàn)證。
第二步:填寫(xiě)對(duì)應(yīng)安裝的軟件版本號(hào),如1.0.0.1;
第三步:填寫(xiě)使用或授權(quán)限定使用的期限,如3年。
第四步:點(diǎn)擊生成序列號(hào)生成授權(quán)序列號(hào)(后臺(tái)會(huì)調(diào)用RSA加密算法,對(duì)輸入內(nèi)容進(jìn)行加密)。

圖 11 序列號(hào)生成流程圖
下圖2是序列號(hào)驗(yàn)證邏輯流程圖(構(gòu)想)。
第一步:輸入獲取的序列號(hào)。
第二步:后臺(tái)執(zhí)行RSA解密序列號(hào)。
第三步:判定各個(gè)屬性值和安裝設(shè)備是否一致。
第四步:全部相同確定為有效序列號(hào),可以放行軟件功能權(quán)限。

圖 12序列號(hào)驗(yàn)證邏輯流程圖
8.參考
【1】Linux Mac 地址修改方法
https://zhangge.net/2631.html
【2】UUID唯一資源命名空間的來(lái)龍去脈(RFC4122)
https://segmentfault.com/a/1190000000484508
【3】Linux磁盤(pán)分區(qū)UUID的獲取及其UUID的作用
http://blog.chinaunix.net/uid-26517277-id-3240867.html
【4】JAVA平臺(tái)生成GUID
http://www.cnblogs.com/jdonson/archive/2009/07/22/1528466.html
【5】詳解Linux中獲取全球唯一標(biāo)示符UUID的方法
http://www.jb51.net/LINUXjishu/433891.html
【6】各種OS生成UUID的方法
http://linfan.info/blog/2012/04/20/uuid/
【7】注冊(cè)碼的原理(可參考)
http://blog.csdn.net/jacky_think/article/details/4565241
https://www.zhihu.com/question/20107987
【8】UUID的生成算法
http://blog.csdn.net/ubuntu64fan/article/details/1787891
【9】Windows修改Mac地址方法
http://jingyan.baidu.com/article/4b52d70266bde7fc5c774ba7.html
轉(zhuǎn)載請(qǐng)標(biāo)明出處,原文地址:
http://blog.csdn.net/laoyang360/article/details/50966707