共享软件注册部分的简单实现
作者 佚名技术
来源 程序设计
浏览
发布时间 2012-06-30
gy 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++中运行通 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: C++编程批评系列 继承的本质下一篇: C++程序中导出Word文档的方法
关于共享软件注册部分的简单实现的所有评论