安裝序列號一般是以什麼為基礎生成的

2021-04-09 02:32:12 字數 1591 閱讀 4686

ybwen:

winnt4.0 sp5

c++ builder 4.0,installshield

我在製作安裝程式時,想生成乙個安裝序列號,請問序列號一般是以什麼為基礎生成的,使用的是什麼演算法?

這並沒有乙個統一的演算法,一般可以根據個人喜好。絕大多數安裝序列號都與使用者的硬碟分割槽序列號有關(qa000894 "如何呼叫getvolumeinformation獲得磁碟序列號")。也有的安裝程式還檢查cpu型別(比如將486定為1,pentium定為2等等)、網絡卡等。然後,對得到的這些序號進行一些算術運算或字元變換。下面是某軟體的序列號產生程式。

char

stable="xr4jyw95g7k26l3q";

// get volume serial number

getvolumeinformation( "c://", (lpstr)null, 0,

&dwvolumeserialnumber, &dwdummy1,

&dwdummy2, (lpstr)null, 0);

// caculate the serial number

dwvolumeserialnumber2 = (dwvolumeserialnumber & 0xff)

^ (dwvolumeserialnumber >> 8);

scode[7] = stable[(dwvolumeserialnumber2 >> 20) ^ 1];

scode[5] = stable[(dwvolumeserialnumber2 >> 16 & 0xf) ^ 1];

scode[12] = stable[(dwvolumeserialnumber2 >> 12 & 0xf) ^ 1];

scode[6] = stable[(dwvolumeserialnumber2 >> 8 & 0xf) ^ 7];

scode[9] = stable[(dwvolumeserialnumber2 >> 4 & 0xf) ^ 7];

scode[8] = stable[(dwvolumeserialnumber2 & 0xf) ^ 7];

scode[13] = stable[(dwvolumeserialnumber2 >> 20) ^ 1

^ (dwvolumeserialnumber2 & 0xf) ^ 7];

scode[14] = stable[(dwvolumeserialnumber2 >> 20) ^ 1

^ (dwvolumeserialnumber2 & 0xf) ^ 7 ^ 0xb];

wsprintf(sbuff, "disk serial number: %x-%x/r/n"

"sorbet serial number: %s",

hiword(dwvolumeserialnumber),

loword(dwvolumeserialnumber),

scode);

setdlgitemtext(hwnddlg, idc_msg, sbuff);

此問題由李海回答。

a回答:

(原文:

ubuntu一般軟體安裝在什麼目錄

另參見apt使用參考 apt cache search package 搜尋包 apt cache show package 獲取包的相關資訊,如說明 大小 版本等 sudo apt get install package 安裝包 sudo apt get install package reins...

LINUX的一般安裝方法

一 linux 分割槽格式 我們在windows 下的分割槽格式一般是 fat32 或是ntfs的,而在linux 下面我們一般採用的是 ext2 或是ext3 格式的,一般認為是 ext3 格式的要更好一些 現在的一些剛剛開始學習 linux 的朋友們一般採的是 windows 和linux 共存...

LINUX的一般安裝方法

一 linux 分割槽格式 我們在windows 下的分割槽格式一般是 fat32 或是ntfs的,而在linux 下面我們一般採用的是 ext2 或是ext3 格式的,一般認為是 ext3 格式的要更好一些 現在的一些剛剛開始學習 linux 的朋友們一般採的是 windows 和linux 共存...