亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

共享軟件中注冊部分的簡單實現

2019-11-17 05:24:25
字體:
來源:轉載
供稿:網友

  目前,很多共享軟件中使用注冊碼來實現對軟件的保護。所謂注冊碼,就是一組與用戶的某些特定信息(如用戶名稱、計算機硬件等等)相關的字符串。由于注冊碼傳輸起來比較簡單,同時輕易驗證(相對于磁盤、光盤指紋等),因此現在注冊碼的應用越來越廣泛,甚至一些商業軟件,如Windows xp也使用了類似的機制(Microsoft稱為Windows PRodUCt
Activation)。   談起注冊碼,就不能不提注冊器。注冊器是用來產生注冊碼的程序,其計算邏輯通常與受保護的應用程序一致。通過與受保護應用程序相同,或預先約定的計算邏輯得到的注冊號,將決定受保護應用程序的行為,如顯示“軟件未注冊”、禁用某些功能,或在“關于”對話框中顯示注冊者的姓名,等等?! ∑渲?,最終用戶通過某種方式提交其注冊信息,例如他(或他所在的組織)的名字,甚至極端一些,提供某些可以確定某人身份的信息,如Pentium III CPU的CPU ID,硬盤的序列號,網卡的MAC地址等等。然后,注冊服務器,或呼叫中心的服務人員根據用戶提供的信息,計算一個注冊號,并告訴最終用戶?! ⊥ǔ#捎谌斯げ僮骺赡茉斐刹铄e,我們希望注冊過程由計算機自動實現。不過這就帶來了一個問題:用戶憑什么相信我們的程序并不會泄漏他的個人隱私呢?針對這一問題,目前流行的做法是提供若干選項,其中包括電話注冊,網絡注冊,以及平信注冊等等,并把程序提交的內容告知用戶。  此外,某些與用戶的電腦相關的信息,如配置等等,不宜使用明文傳送。這一方面是由于用戶可能不愿意將這些信息透露給我們,另一方面是以明文傳送信息可能會導致第三方(如cracker)截獲信息。目前比較流行的方法是把那些我們并不需要,但卻決定用戶身份的信息用某種散列算法進行編碼然后再發送。當然,在發送過程中我們可以使用SSL加密,或者其他一些方法來保證安全,由于與本文的主要內容關系不大,在此不贅述,讀者可參考相關書籍?! ⌒枰C艿挠脩粜畔ⅰ?散列算法 → 安全傳輸(如SSL) →服務器   就筆者個人的經驗,計算注冊碼和驗證注冊碼使用不同的算法,可以在一定程度上提高注冊過程的安全性。當然,任何安全措施都不可能保證不被解密,“世界上沒有打不開的鎖”,解密只是一個時間問題,在構造注冊碼算法的時候,只要讓解密代價大于軟件價值即可,不必做得太復雜?! ∽鳛橛脩舳?,無論是用什么注冊方式,他都不希望過于復雜。通過計算機直接注冊的方式無疑是最方便的,但很多用戶可能不愿意這樣做。作為用戶來說,通過電話注冊這種方式,說出自己的注冊ID(通常包括了產品ID、用戶的名字等信息),以及輸入注冊碼應該是各種注冊方式中最麻煩的一種。因此,注冊ID和注冊碼應該具有以下特點: ?。?)便于辨認、輸入。注冊碼不是密碼,沒有必要是用大量的非凡符號、大小寫組合。因此,注冊碼和注冊ID中不應該包含不同大小寫的字母,以及輕易混淆的數字(1-I,0-O,2-Z)?! 。?)具有查錯能力。統計證實,輸入注冊碼時,錯序(如把1234輸入成1243)、擊鍵錯誤是最常見的錯誤。比較常用的方法是把注冊碼分成若干節,每節包括一個校驗碼,這樣注冊碼就具有查錯能力了?! 榱梭w現上面的要求,我構造了一個這樣的算法: ?。?)計算輸入的用戶名,并按照下面的規則計算和:  設結果為a,預置為0  按順序取用戶名字符串的每一個字符的ASCII值,乘上位號,累加到a上?! ±纾骸  a s o n   L i
  1 2 3 4 5 6 7 8   這樣,a=(char)’J’+((char)’a’)*2+((char)’s’)*3+... ?。?)將a、a²按照一定規則變換之后成為注冊字符串?! 崿F程序如下:// reg.cpp : Demo program for Keygen
// By Jason Li, 2001. Written for FrontFree techonology network#include <string>
#include <iostream>using namespace std;typedef int BOOL;const BOOL TRUE=(1==1);
const BOOL FALSE=!TRUE;// Define the magic string
const string sMagic="L5WXTUYJH7VMB4GA8SFKQN9E36RPDC";string GetRegstr(string &sName){
string sResult="FFTN-";
long lSum=0;
long lSum1;
long lChksum;register unsigned int i;// Calculate the registration string
for(i=0;i<sName.length();i++){
lSum += sName.at(i) * (i+1);
}
// The checksum prevents accident input
lChksum=sMagic.at(lSum%30);
sResult+=sMagic.at(lSum%30);
lSum1=lSum;
for(i=0;i<4;i++){
sResult+=(char)((lSum%10)+’0’);
lChksum+=((lSum%10)+’0’);
lSum/=10;
}
sResult+=(sMagic.at(lChksum%30));
sResult+="-";
lChksum=0;
lSum=lSum1*lSum1/3;
for(i=0;i<5;i++){
sResult+=sMagic.at(lSum%30);
lChksum+=sMagic.at(lSum%30)*((i%2)+1); // Sum even bytes twice
lSum/=7;
}
sResult+=(sMagic.at(lChksum%36));
sResult+="-";lChksum=0;
lSum=lSum1*lSum1/5;
for(i=0;i<5;i++){
sResult+=sMagic.at(lSum%30);
lChksum+=sMagic.at(lSum%30)*((i%2)+1); // Sum even bytes twice
lSum/=11;
}
sResult+=(sMagic.at(lChksum%36));
sResult+="-";lChksum=0;
lSum=lSum1*lSum1/7;
for(i=0;i<5;i++){
sResult+=sMagic.at(lSum%30);
lChksum+=sMagic.at(lSum%30)*((i%2)+1); // Sum even bytes twice
lSum/=17;
}
sResult+=(sMagic.at(lChksum%30));return sResult;
}int main(void){
string sName;
string sRegstr;// Output the prompt for user
cout << "Registration Code Generator DEMO program version 1.00" << endl;
cout << "By Jason Li, 2001. For test purpose only." << endl;
cout << endl;// Loop until the user name is legal to the algorithm
do{
// Get the user name
cout << "Enter the user’s name (5 chars min), followed by comma(,): ";
getline(cin, sName, ’,’);
}while(sName.length()<=5);cout<<"User "<<sName;sRegstr=GetRegstr(sName);cout<<" has the registration string of "<<sRegstr;
cout<<endl;return 0;
}  程序按ANSI C++標準編寫,在Visual C++ 6和GNU C++中運行通

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产亚洲精品久久久久久| 亚洲精品456在线播放狼人| 亚洲综合小说区| 55夜色66夜色国产精品视频| 亚洲精品黄网在线观看| 欧美在线观看一区二区三区| 亚洲欧美日韩综合| 欧美午夜激情视频| 久久久久久久色| 日韩在线观看视频免费| 欧美xxxx18性欧美| 欧美洲成人男女午夜视频| 韩日欧美一区二区| 国产精品情侣自拍| 日韩成人在线播放| 欧美性感美女h网站在线观看免费| 在线播放亚洲激情| 欧美国产高跟鞋裸体秀xxxhd| 精品高清一区二区三区| 91免费版网站入口| 午夜精品久久久久久久男人的天堂| 亚洲国产精品久久久久| 亚洲一区二区三区sesese| 欧美精品久久久久| 国产精品视频导航| 国产色视频一区| 亚洲美女在线观看| 亚洲国产高潮在线观看| 欧美在线亚洲在线| 成人国产精品久久久| 成人在线小视频| 欧美激情亚洲激情| 欧美丝袜一区二区| 欧美亚洲一级片| 成人久久久久爱| 亚洲精品一区中文| 国产精品露脸自拍| 欧美人与性动交| 亚洲第一av网| 91日本视频在线| 夜夜嗨av色综合久久久综合网| 国产在线视频不卡| 亚洲999一在线观看www| 日韩av电影在线网| 欧美激情视频网| 国产在线观看精品一区二区三区| 91黑丝在线观看| 日韩中文字幕精品视频| 国产精品91在线| 亚洲精品成人网| 亚洲国产精品一区二区三区| 欧美高清视频免费观看| 视频直播国产精品| 成人亚洲欧美一区二区三区| 欧美影院在线播放| 欧美丰满老妇厨房牲生活| 韩曰欧美视频免费观看| 精品人伦一区二区三区蜜桃免费| 91精品国产91| 亚洲自拍偷拍网址| 欧美xxxx综合视频| 国产精品永久免费| 亚洲色图欧美制服丝袜另类第一页| 亚洲人精品午夜在线观看| 国产精品久久婷婷六月丁香| 91精品国产91久久久久久最新| 97人洗澡人人免费公开视频碰碰碰| 日韩中文av在线| 日韩av免费在线观看| 日本伊人精品一区二区三区介绍| 亚洲图中文字幕| 欧美午夜久久久| 热久久99这里有精品| 欧美限制级电影在线观看| 在线免费观看羞羞视频一区二区| 国产999精品视频| 国产精品丝袜久久久久久不卡| 欧美日韩亚洲高清| 久久伊人91精品综合网站| 91精品视频观看| 一个人看的www欧美| 黄色一区二区三区| 国产精品视频免费在线观看| 亚洲在线观看视频| 97在线观看视频国产| 91网站免费看| 欧美一级大片在线观看| 亚洲天堂av图片| 欧美三级免费观看| 精品福利一区二区| 亚洲中国色老太| 亚洲欧美另类中文字幕| 国产精品狼人色视频一区| 日本在线观看天堂男亚洲| 日韩av影片在线观看| 日韩av在线免费| 不卡伊人av在线播放| 亚洲乱亚洲乱妇无码| 国产精品海角社区在线观看| 久久99久久99精品中文字幕| 亚洲精品国产电影| 亚洲综合中文字幕在线| 91欧美精品午夜性色福利在线| 午夜免费在线观看精品视频| 亚洲最大福利网| 国内外成人免费激情在线视频| 国产精品成人va在线观看| 欧美裸身视频免费观看| 国产精品久久久久久久久久ktv| 一区二区三区四区精品| 国产亚洲免费的视频看| 亚洲欧美日韩区| 色老头一区二区三区在线观看| 国产一区私人高清影院| 日韩在线观看电影| 久久91精品国产91久久久| 欧美国产日韩一区二区在线观看| 91精品国产色综合久久不卡98| 色综合久久悠悠| 亚洲精品视频久久| 国产欧美在线视频| 97久久精品人人澡人人爽缅北| 欧美精品福利在线| 国产精品入口免费视| 国产精品ⅴa在线观看h| 亚洲人成电影在线播放| 国产欧美日韩综合精品| 91日本视频在线| 91日韩在线视频| 国产主播欧美精品| 欧美性色xo影院| 97久久精品在线| 三级精品视频久久久久| 亚洲精品自拍第一页| 91av免费观看91av精品在线| 国产区亚洲区欧美区| 国产精品夜间视频香蕉| 亚洲欧洲一区二区三区在线观看| 亚洲aa在线观看| 亚洲激情在线视频| 欧美大片大片在线播放| 亚洲一区中文字幕在线观看| 日韩欧美综合在线视频| 国产一区红桃视频| 热久久免费视频精品| 91高清免费视频| 午夜精品久久17c| 日韩av在线精品| 成人午夜黄色影院| 欧美韩日一区二区| 欧美日韩国产va另类| 日韩美女福利视频| 青草青草久热精品视频在线网站| 亚洲精品98久久久久久中文字幕| 久久久久久九九九| 国产成人亚洲综合青青| 欧美日韩成人免费| 日韩成人av在线播放| 欧美激情在线观看| 亚洲午夜性刺激影院| 精品国产福利视频| 精品av在线播放| 国产精品私拍pans大尺度在线| 久久影院在线观看|