基于比特幣地址生成算法的License生成器設(shè)計(jì)

  License是版權(quán)許可證,相當(dāng)于軟件版權(quán)。它屬于知識(shí)產(chǎn)權(quán)的著作權(quán)范疇,是軟件反盜版、對(duì)正版用戶授權(quán)的一種方式。軟件序列號(hào)(Serial Number, 縮寫(xiě)是S/N)是軟件授權(quán)給使用者的唯一標(biāo)識(shí)符。每一臺(tái)機(jī)器都有唯一的序列號(hào),這是檢查產(chǎn)品的重要依據(jù),其作用主要是為了防止軟件的非法復(fù)制、盜版。

  序列號(hào)的生成原理:一般是以計(jì)算機(jī)硬件參數(shù)的唯一ID作為注冊(cè)源,通過(guò)一定的算法形成所謂的注冊(cè)碼(s/n)。即通過(guò)對(duì)cpu、網(wǎng)卡或硬盤ID的加密處理得到軟件序列號(hào)。之所以基于硬件參數(shù)是因?yàn)?,如cpu序列號(hào)是一個(gè)建立在處理器內(nèi)部、唯一的、不能被修改的編號(hào)。而硬盤ID是出廠時(shí)生產(chǎn)廠家為區(qū)別產(chǎn)品而設(shè)置的,用硬盤ID加密主要是利用其唯一和只讀的特性。

序列號(hào)生成器的核心部分是其算法,當(dāng)前序列號(hào)生成器算法一般是通過(guò)硬件參數(shù)獲得機(jī)器碼,然后利用MD5算法對(duì)其加密,得到32或16位MD5編碼。然后再把編碼分成4份即得到序列號(hào)。

一、總體設(shè)計(jì)

  序列號(hào)生成器產(chǎn)生序列號(hào)的過(guò)程分為三個(gè)模塊:提取硬件參數(shù)模塊、生成序列號(hào)算法模塊、輸出序列號(hào)模塊。

圖1 總體設(shè)計(jì)流程

二、生成流程

圖2 序列號(hào)生成過(guò)程

  1.首先獲取硬件參數(shù)信息,并將隨機(jī)數(shù)作為密鑰。

  2.將硬件參數(shù)信息和密鑰經(jīng)過(guò)SECP256K1算法處理生成了公鑰。

  3.計(jì)算公鑰的SHA256哈希值

  4.取上一步結(jié)果,計(jì)算PIPEMD160哈希值。同SHA256一樣PIPEMD160也是一種hash算法,由公鑰可以計(jì)算得到公鑰哈希,而反過(guò)來(lái)是行不通的。

  5.將一個(gè)字節(jié)的地址版本號(hào)連接到公鑰哈希的頭部,然后對(duì)其進(jìn)行兩次SHA256運(yùn)算,將結(jié)果的前4個(gè)字節(jié)作為公鑰哈希的校驗(yàn)值,連接其尾部。

  6.將上一步結(jié)果使用Base58進(jìn)行編碼,就得到了序列號(hào)。Base58編碼為了讓輸出字符串易于辨別,所以編碼時(shí)故意排除了4個(gè)字符: ‘0’、‘I’、‘l’、‘O’,如果你想生成一個(gè)帶特殊詞綴的地址那就不要帶這4個(gè)符了。

三、驗(yàn)證流程

  驗(yàn)證序列號(hào)流程如圖3所示:

圖3 序列驗(yàn)證流程
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容