久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 23510|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

C語(yǔ)言數(shù)字密碼加密程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:71922 發(fā)表于 2015-1-11 01:25 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本帖最后由 liuyuxi 于 2015-1-11 01:54 編輯

  (╯▽╰)╭斷網(wǎng)的日子還蠻不錯(cuò),啊..終于可以靜下心來(lái)學(xué)點(diǎn)正經(jīng)的東西了(自我安慰..),快半年沒(méi)接觸C語(yǔ)言了,好像只學(xué)到了第四章 流程控制,郁悶,找了半天也沒(méi)找那本《C語(yǔ)言開(kāi)發(fā)入門(mén)與編程實(shí)戰(zhàn)》(強(qiáng)烈推薦珍藏!!!)。復(fù)習(xí)一下,試著編寫(xiě)一個(gè)能對(duì)數(shù)字進(jìn)行加密解密的程序,哈哈,看來(lái)我以前學(xué)的蠻認(rèn)真的.....寫(xiě)完了后總覺(jué)得好像少了什么東西,哈...現(xiàn)在的實(shí)用軟件一般都要錢(qián),需要付錢(qián)才能得到序列號(hào)(注冊(cè)碼)才能解除限制..干脆給它加上這個(gè)功能,雖然這個(gè)的程序不怎么實(shí)用,練習(xí)一下....幸虧我接觸過(guò)軟件破解技術(shù)..花了N個(gè)小時(shí)終于把這個(gè)功能編寫(xiě)完成了....每一句代碼都有注釋方便各位了解程序
作品名稱(chēng):數(shù)字密碼加密程序
作品目的:增加對(duì)條件指令、循環(huán)指令的了解
作品功能:實(shí)現(xiàn)注冊(cè)驗(yàn)證及對(duì)數(shù)字進(jìn)行加密、解密功能
作品缺陷:程序判斷用戶(hù)的選擇只能用數(shù)字否則出錯(cuò)(嘗試用過(guò)char類(lèi)型),只能加密9位數(shù)字否則不能正確解密(BUG與算法無(wú)關(guān)),選擇一個(gè)功能后必須重啟程序才能再次選擇另一種功能同時(shí)需要重新輸入序列號(hào),以上原因尚不明確!⊙﹏⊙b"),希望各位指教
程序界面:
  1. 程序源代碼:(編譯環(huán)境為開(kāi)源軟件DEV-C++ 4.9.9.2 多國(guó)語(yǔ)言版)

  2. *********************************源代碼****************************************
  3. #include<stdio.h>/*加載包含基本輸入輸出函數(shù)頭文件*/

  4. #include<stdlib.h>/*加載標(biāo)準(zhǔn)函數(shù)庫(kù)頭文件*/

  5. int main()/*聲明主函數(shù)*/

  6. {

  7.    int a,i=3;/*聲明整數(shù)變量a、i,并把賦值3給i*/

  8.    printf("\n\n   愿結(jié)交對(duì)C語(yǔ)言深感興趣并研究過(guò)C語(yǔ)言的朋友\n   若有任何建議或愿共同探討請(qǐng)聯(lián)系QQ:0000000000\n   本程序,采用垃圾算法,純屬練習(xí)作品,各位不必當(dāng)真。");

  9. printf("\n\n作品名稱(chēng):數(shù)字密碼加密程序\n\n作品目的:增加對(duì)條件指令、循環(huán)指令的了解\n\n作品功能:實(shí)現(xiàn)注冊(cè)驗(yàn)證及對(duì)數(shù)字進(jìn)行加密、解密功能\n\n作品缺陷:程序判斷用戶(hù)的選擇只能用數(shù)字否則出錯(cuò)(嘗試用過(guò)char類(lèi)型),只能加密\n          9位數(shù)字否則不能正確解密(此BUG與算法無(wú)關(guān)),每選擇一次功能都必須重\n          新選擇一個(gè)功能后必須重啟程序才能再次選擇另一種功能同時(shí)需要重新輸\n          入序列號(hào),以上原因尚不明確!⊙﹏⊙b汗,希望各位能指教。");

  10.    printf("\n\n   O(∩_∩)O哈哈~,請(qǐng)選擇所需要的功能:\n\n 1:加密(目前只支持9位任意數(shù)字,原因至今不明  (#‵′)凸\n\n 2:解密(只對(duì)本程序加密的密文有效)\n\n 0:退出\n\n  ");

  11.    scanf("%d",&a);/*讀取用戶(hù)所輸入的選項(xiàng)并賦值給變量a*/



  12. while(a>2)/*設(shè)定循環(huán)條件,達(dá)到輸入錯(cuò)誤選項(xiàng)即可循環(huán)執(zhí)行確認(rèn)選擇功能指令*/

  13. {

  14.            printf("\n\n   O(∩_∩)O哈哈~,不能亂選哦,請(qǐng)?jiān)俅握J(rèn)真選擇所需要的功能:\n\n 1:加密(目前只支持9位任意數(shù)字,原因至今不明  (#‵′)凸\n\n 2:解密(只對(duì)本程序加密的密文有效)\n\n 0:退出\n\n  ");

  15.    scanf("%d",&a);/*讀取用戶(hù)所輸入的選項(xiàng)并賦值給變量a*/

  16.            }

  17.    if(a==1)/*判斷變量a是否等于1,條件成立則執(zhí)行下面的指令,否則跳過(guò)下面的指令*/

  18.    {

  19.    printf("\n   (*^__^*) 歡迎使用本加密程序(注:試用版只能使用三次)\n");/*顯示說(shuō)明*/

  20.    printf("請(qǐng)輸入序列號(hào):\n\n  ");/*顯示說(shuō)明*/

  21.    scanf("%d",&a);/*讀取用戶(hù)所輸入的序列號(hào)并賦值給變量a*/

  22.    if(a!=0000000000)/*若用戶(hù)所輸入的序列號(hào)不等于0000000000則執(zhí)行下面的指令,否則跳過(guò)下面的指令*/

  23.    {

  24.   /*這段為未注冊(cè)限制代碼↓↓*/

  25.     while(i!=0)/*循環(huán)語(yǔ)句,設(shè)定條件為3次,由聲明變量時(shí)確定,達(dá)到三次后跳出循環(huán)停止運(yùn)行算法*/

  26.    {

  27.     printf("\n請(qǐng)輸入一組需加密的數(shù)字(未注冊(cè))\n\n  ");/*顯示說(shuō)明*/

  28.     scanf("%d",&a);/*讀取用戶(hù)所輸入的數(shù)值并賦值給變量a*/

  29.     a=a+100000;/*進(jìn)行加密算法↓↓*/

  30.     a=a+100009;

  31.     a=a+100052;

  32.     a=a+100878;

  33.     a=a+108546;

  34.     a=a+113545;

  35.     a=a+314123;/*進(jìn)行加密算法↑↑*/

  36.     i--;/*運(yùn)行算法一次則i減1,達(dá)到三次后滿足循環(huán)條件即運(yùn)行3次算法,則i=3-3=0*/

  37.     printf("\n\n~\a\(≧▽≦)/~恭喜,已完成加密!密文為:%d(還有%d次使用權(quán))\n\n",a,i);/*算法完成輸出密文并提醒使用次數(shù)*/

  38.     system("pause");/*程序掛起命令*/

  39. }

  40. printf("\n\a\a\a   ╮(╯▽╰)╭對(duì)不起,您使用的次數(shù)已達(dá)到試用版的上限!\n\n"); /*警告用戶(hù)*/

  41. printf("\n\n\nO(∩_∩)O哈哈~,告訴你一個(gè)秘密哈,若想再次使用可以再次運(yùn)行本程序,照樣\n還可以使用三次。不過(guò),如果你這樣做的話,也只能說(shuō)明你笨╮(╯▽╰)╭\n\n\n");/*幽默一下哈↖(^ω^)↗*/

  42. system("pause"); /*程序掛起命令*/

  43. }

  44. else/*若等于0000000000則運(yùn)行下面指令*/

  45. {

  46.      /*這段為已注冊(cè)無(wú)限制代碼↓↓*/

  47.     for(;;)/*循環(huán)語(yǔ)句,不設(shè)定條件,可無(wú)限次運(yùn)行算法指令*/

  48.    {

  49.     printf("\n請(qǐng)輸入一組需加密的數(shù)字(已注冊(cè),可無(wú)限使用)\n\n  ");/*顯示說(shuō)明*/

  50.     scanf("%d",&a);/*讀取用戶(hù)所輸入的數(shù)值并賦值給變量a*/

  51.     a=a+100000;/*進(jìn)行加密算法↓↓*/

  52.     a=a+100009;

  53.     a=a+100052;

  54.     a=a+100878;

  55.     a=a+108546;

  56.     a=a+113545;

  57.     a=a+314123;/*進(jìn)行加密算法↑↑*/

  58.     printf("\n\n\a~\(≧▽≦)/~恭喜,已完成加密!密文為:%d\n\n",a);/*算法完成,輸出密文*/

  59.     system("pause");/*程序掛起命令*/

  60. }

  61. }

  62. }

  63. else if(a==2)/*判斷變量a是否等于2,條件成立則執(zhí)行下面的指令,否則跳過(guò)下面的指令*/

  64. {

  65.         printf("\n   (*^__^*) 歡迎使用解密程序(注:試用版只能使用三次)\n");/*顯示說(shuō)明*/

  66.    printf("\n請(qǐng)輸入序列號(hào):\n\n  ");/*顯示說(shuō)明*/

  67.    scanf("%d",&a);/*讀取用戶(hù)所輸入的數(shù)值并賦值給變量a*/

  68.    if(a!=0000000000)/*若用戶(hù)所輸入的數(shù)值不等于0000000000則運(yùn)行下面指令*/

  69.    {

  70.   /*未注冊(cè)↓↓*/

  71.     while(i!=0)/*循環(huán)語(yǔ)句,設(shè)定條件為1次,達(dá)到三次后跳出循環(huán)語(yǔ)句即i等于3*/

  72.    {

  73.     printf("\n請(qǐng)輸入一組需解密的數(shù)字(未注冊(cè))\n\n  ");/*顯示說(shuō)明*/

  74.     scanf("%d",&a);/*讀取用戶(hù)所輸入的數(shù)值并賦值給變量a*/

  75.     a=a-100000;/*逆行執(zhí)行加密算法↓↓*/

  76.     a=a-100009;

  77.     a=a-100052;

  78. a=a-100878;

  79.     a=a-108546;

  80.     a=a-113545;

  81.     a=a-314123;/*逆行執(zhí)行加密算法↑↑*/

  82.     i--;/*運(yùn)行算法一次則i加1,達(dá)到三次后滿足循環(huán)條件*/

  83.     printf("\n\a   ~\(≧▽≦)/~恭喜,已完成解密!密碼為:%d(還有%d次使用權(quán))\n\n",a,i);/*算法完成輸出真實(shí)密碼*/

  84.     system("pause");/*程序掛起命令*/

  85. }

  86. printf("\n\a\a   ╮(╯▽╰)╭對(duì)不起,您使用的次數(shù)已達(dá)到試用版的上限!\n\n");

  87. printf("\n\n\nO(∩_∩)O哈哈~,告訴你一個(gè)秘密哈,若想再次使用可以再次運(yùn)行本程序,照樣\n還可以使用三次。不過(guò),如果你這樣做的話,也只能說(shuō)明你笨╮(╯▽╰)╭\n\n\n");

  88. system("pause"); /*程序掛起命令*/

  89. }

  90. else/*若等于0000000000則運(yùn)行下面指令*/

  91. {

  92.      /*已注冊(cè)↓↓*/

  93.     for(;;)/*循環(huán)語(yǔ)句,不設(shè)定條件*/

  94.    {

  95.     printf("\n請(qǐng)輸入一組需解密的數(shù)字(已注冊(cè),可無(wú)限使用)\n\n  ");/*顯示說(shuō)明*/

  96.     scanf("%d",&a);/*讀取用戶(hù)所輸入的數(shù)值并賦值給變量a*/

  97.     a=a-100000;/*逆行執(zhí)行加密算法↓↓*/

  98.     a=a-100009;

  99.     a=a-100052;

  100.     a=a-100878;

  101.     a=a-108546;

  102.     a=a-113545;

  103.     a=a-314123;/*逆行執(zhí)行加密算法↑↑*/

  104.     printf("\n\n\a   ~\(≧▽≦)/~恭喜,已完成解密!密碼為:%d\n\n",a);/*算法完成輸出真實(shí)密碼*/

  105.     system("pause");/*程序掛起命令*/

  106. }

  107. }

  108. }

  109. }

  110. *********************************源代碼****************************************
復(fù)制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:71922 發(fā)表于 2015-1-11 01:28 | 只看該作者
本帖最后由 liuyuxi 于 2015-1-11 01:54 編輯

首先我得感謝我的一個(gè)兄弟——謝武,如果不是他的C++源代碼,我還沒(méi)那么快學(xué)到函數(shù)這方面的知識(shí)也正因?yàn)樗脑创a讓我懂了一些函數(shù)調(diào)用的技巧。謝謝你,謝武!祝你考證成功….
作品名稱(chēng):數(shù)字密碼加密程序(改進(jìn)版)
作品目的:增加對(duì)條件指令、循環(huán)指令的了解并熟悉自定義函數(shù)及調(diào)用函數(shù)的方法
作品功能:實(shí)現(xiàn)注冊(cè)驗(yàn)證及對(duì)數(shù)字進(jìn)行加密、解密功能
作品改進(jìn):利用函數(shù)調(diào)用改進(jìn)了選擇一個(gè)功能后必須重啟程序才能再次選擇另一種功能
作品缺陷:程序判斷用戶(hù)的選擇只能用數(shù)字否則出錯(cuò)(嘗試用過(guò)char類(lèi)型),只能加密 9位數(shù)字否則不能正確解密(BUG與算法無(wú)關(guān)),每選擇一次功能都必須重新輸入序列號(hào),以上原因尚不明確!⊙﹏⊙b,希望各位能指教。
程序界面:
  1. 程序源代碼:(編譯環(huán)境為開(kāi)源軟件DEV-C++ 4.9.9.2 多國(guó)語(yǔ)言版)

  2. *********************************源代碼****************************************

  3. #include<stdio.h>/*加載包含基本輸入輸出函數(shù)頭文件*/

  4. #include<stdlib.h>/*加載標(biāo)準(zhǔn)函數(shù)庫(kù)頭文件*/

  5. int jiamiweizhuce(int i=3,int a=0,int d=0)/*聲明自定義jiamiweizhuce函數(shù)(未注冊(cè)限制使用)同時(shí)聲明變量*/

  6. {

  7. /*以下為未注冊(cè)限制代碼↓↓*/

  8.     while(i!=0)/*循環(huán)語(yǔ)句,設(shè)定條件為3次,由聲明變量時(shí)確定,達(dá)到三次后跳出循環(huán)停止運(yùn)行算法*/

  9.    {

  10.     printf("\n請(qǐng)輸入一組需加密的數(shù)字【未注冊(cè)】\n\n  ");/*顯示說(shuō)明*/

  11.     scanf("%d",&a);/*讀取用戶(hù)所輸入的數(shù)值并賦值給變量a*/

  12. a=a+100000;/*進(jìn)行加密算法↓↓*/

  13.     a=a+100009;

  14.     a=a+100052;

  15.     a=a+100878;

  16.     a=a+108546;

  17.     a=a+113545;

  18.     a=a+314123;/*進(jìn)行加密算法↑↑*/

  19.     i--;/*運(yùn)行算法一次則i減1,達(dá)到三次后滿足循環(huán)條件即運(yùn)行3次算法,則i=3-3=0*/

  20.     printf("\n\n~\a\(≧▽≦)/~恭喜,已完成加密!密文為:【%d】(還有【%d】次使用權(quán))\n\n",a,i);/*算法完成輸出密文并提醒使用次數(shù)*/

  21.     printf("\n返回主菜單請(qǐng)輸入數(shù)字【3】,繼續(xù)加密請(qǐng)輸入任意數(shù)字\n\n  ");/*提示*/

  22.     scanf("%d",&d);/*讀取用戶(hù)所輸入的數(shù)值并存入變量d*/

  23.     if(d==3)/*若變量d等于3則強(qiáng)制跳出循環(huán)*/

  24.     break;/*強(qiáng)制跳出循環(huán)*/

  25. }

  26. if(d==3)/*若變量d等于3則運(yùn)行以下代碼,否則省略本段代碼*/

  27.        {

  28.        int zhu();/*調(diào)用自定義的zhu函數(shù)*/

  29.        zhu();/*我也不清楚為什么還要再寫(xiě)一次函數(shù)名,我是在我的兄弟"武"的C++代碼得到的啟發(fā),如果沒(méi)這句代碼將無(wú)法調(diào)用此函數(shù)!或許這就是強(qiáng)制調(diào)用函數(shù)吧!*/

  30.        }

  31. system("pause");/*程序掛起*/

  32. int tishi();/*調(diào)用自定義的tishi函數(shù)*/

  33. tishi();/*原因尚不明確,若遇到函數(shù)調(diào)用不成功可再次寫(xiě)一次函數(shù)名,有強(qiáng)制調(diào)用函數(shù)的作用*/

  34. }

  35. int jiamiyizhuce(int i=3,int a=0,int d=0)/*聲明自定義jiamiyizhuce函數(shù)(已注冊(cè)無(wú)限制使用)*/

  36. {

  37.          /*以下為已注冊(cè)無(wú)限制代碼↓↓*/

  38.     for(;;)/*循環(huán)語(yǔ)句,不設(shè)定條件,可無(wú)限次運(yùn)行算法指令*/

  39.    {

  40.     printf("\n請(qǐng)輸入一組需加密的數(shù)字【已注冊(cè),可無(wú)限使用】\n\n  ");/*顯示說(shuō)明*/

  41.     scanf("%d",&a);/*讀取用戶(hù)所輸入的數(shù)值并賦值給變量a*/

  42.     a=a+100000;/*進(jìn)行加密算法↓↓*/

  43.     a=a+100009;

  44.     a=a+100052;

  45.     a=a+100878;

  46.     a=a+108546;

  47.     a=a+113545;

  48.     a=a+314123;/*進(jìn)行加密算法↑↑*/

  49.     printf("\n\n\a~\(≧▽≦)/~恭喜,已完成加密!密文為:【%d】\n\n",a);/*算法完成,輸出密文*/

  50.     printf("\n返回主菜單請(qǐng)輸入數(shù)字【3】,繼續(xù)加密請(qǐng)輸入任意數(shù)字\n\n  ");/*提示*/

  51. scanf("%d",&d);/*讀取用戶(hù)所輸入的數(shù)值并存入變量d*/

  52.     if(d==3)/*若變量d等于3則強(qiáng)制跳出循環(huán)*/

  53.     break; /*強(qiáng)制跳出循環(huán)*/

  54. }

  55. if(d==3)/*若變量d等于3則運(yùn)行以下代碼,否則省略本段代碼*/

  56.        {

  57.        int zhu();/*調(diào)用自定義的zhu函數(shù)*/

  58.        zhu();/*原因尚不明確,若遇到函數(shù)調(diào)用不成功可再次寫(xiě)一次函數(shù)名,有強(qiáng)制調(diào)用函數(shù)的作用*/

  59.        }

  60. system("pause");/*程序掛起*/

  61.     }

  62.     int jiemiweizhuce(int i=3,int a=0,int d=0)/*聲明解密未注冊(cè)(限制使用)函數(shù)*/

  63. {

  64.       /*以下為未注冊(cè)限制代碼↓↓*/

  65.     while(i!=0)/*循環(huán)語(yǔ)句,設(shè)定條件為1次,達(dá)到三次后跳出循環(huán)語(yǔ)句即i等于3*/

  66.    {

  67.     printf("\n請(qǐng)輸入一組需解密的數(shù)字【未注冊(cè)】\n\n  ");/*顯示說(shuō)明*/

  68.     scanf("%d",&a);/*讀取用戶(hù)所輸入的數(shù)值并賦值給變量a*/

  69.     a=a-100000;/*逆行執(zhí)行加密算法↓↓*/

  70.     a=a-100009;

  71.     a=a-100052;

  72.     a=a-100878;

  73.     a=a-108546;

  74.     a=a-113545;

  75.     a=a-314123;/*逆行執(zhí)行加密算法↑↑*/

  76.     i--;/*運(yùn)行算法一次則i加1,達(dá)到三次后滿足循環(huán)條件*/

  77.     printf("\n\a   ~\(≧▽≦)/~恭喜,已完成解密!密碼為:【%d】(還有【%d】次使用權(quán))\n\n",a,i);/*算法完成輸出真實(shí)密碼*/

  78.        printf("\n返回主菜單請(qǐng)輸入數(shù)字【3】,繼續(xù)加密請(qǐng)輸入任意數(shù)字\n\n  ");/*提示*/

  79.     scanf("%d",&d);/*讀取用戶(hù)所輸入的數(shù)值并存入變量d*/

  80.     if(d==3)/*若變量d等于3則強(qiáng)制跳出循環(huán)*/

  81.     break;/*強(qiáng)制跳出循環(huán)*/

  82. }

  83. if(d==3)/*若變量d等于3則運(yùn)行以下代碼,否則省略本段代碼*/

  84.        {

  85.        int zhu();/*調(diào)用自定義的zhu函數(shù)*/

  86.        zhu();/*原因尚不明確,若遇到函數(shù)調(diào)用不成功可再次寫(xiě)一次函數(shù)名,有強(qiáng)制調(diào)用函數(shù)的作用*/

  87.        }

  88. system("pause");/*程序掛起*/

  89. int tishi();/*調(diào)用自定義的tishi函數(shù)*/

  90. tishi();/*原因尚不明確,若遇到函數(shù)調(diào)用不成功可再次寫(xiě)一次函數(shù)名,有強(qiáng)制調(diào)用函數(shù)的作用*/

  91. }

  92.     int jiemiyizhuce(int i=3,int a=0,int d=0)/*聲明解密已注冊(cè)(解除限制)函數(shù)*/

  93.     {

  94.              /*以下為已注冊(cè)無(wú)限制代碼↓↓*/

  95.     for(;;)/*循環(huán)語(yǔ)句,不設(shè)定條件*/

  96.    {

  97.     printf("\n請(qǐng)輸入一組需解密的數(shù)字【已注冊(cè),可無(wú)限使用】\n\n  ");/*顯示說(shuō)明*/

  98.     scanf("%d",&a);/*讀取用戶(hù)所輸入的數(shù)值并賦值給變量a*/

  99.     a=a-100000;/*逆行執(zhí)行加密算法↓↓*/

  100.     a=a-100009;

  101.     a=a-100052;

  102.     a=a-100878;

  103.     a=a-108546;

  104.     a=a-113545;

  105.     a=a-314123;/*逆行執(zhí)行加密算法↑↑*/

  106.     printf("\n\n\a   ~\(≧▽≦)/~恭喜,已完成解密!密碼為:【%d】\n\n",a);/*算法完成輸出真實(shí)密碼*/

  107.     printf("\n返回主菜單請(qǐng)輸入數(shù)字【3】,繼續(xù)加密請(qǐng)輸入任意數(shù)字\n\n  ");/*提示*/

  108.     scanf("%d",&d);/*讀取用戶(hù)所輸入的數(shù)值并存入變量d*/

  109.     if(d==3)/*若變量d等于3則強(qiáng)制跳出循環(huán)*/

  110.     break; /*強(qiáng)制跳出循環(huán)*/

  111. }

  112. if(d==3)/*若變量d等于3則運(yùn)行以下代碼,否則省略本段代碼*/

  113.        {

  114.        int zhu();/*調(diào)用自定義的zhu函數(shù)*/

  115.        zhu();/*原因尚不明確,若遇到函數(shù)調(diào)用不成功可再次寫(xiě)一次函數(shù)名,有強(qiáng)制調(diào)用函數(shù)的作用*/

  116.        }

  117. system("pause");/*程序掛起*/

  118.     }



  119. int zhu()/*自定義zhu函數(shù)*/

  120.     {

  121.     int a,i=3;/*聲明整數(shù)變量a、i,并把賦值3給i*/

  122.        printf("\n********************************************************************");

  123.        printf("\n   此程序?yàn)镃語(yǔ)言編寫(xiě),編譯器為:DEV-C++ 4.9.9.2 多國(guó)語(yǔ)言版");

  124.    printf("\n\n   愿結(jié)交對(duì)C語(yǔ)言深感興趣并研究過(guò)C語(yǔ)言的朋友\n   若有任何建議或愿共同探討請(qǐng)聯(lián)系QQ:0000000000\n   本程序,采用垃圾算法,純屬練習(xí)作品,各位不必當(dāng)真。\n");

  125.   

  126.    printf("\n********************************************************************\n");

  127.    system("pause");

  128.    printf("\n作品名稱(chēng):數(shù)字密碼加密程序(改進(jìn)版)\n\n作品目的:增加對(duì)條件指令、循環(huán)指令的了解并熟悉自定義函數(shù)及調(diào)用函數(shù)的方法\n\n作品功能:實(shí)現(xiàn)注冊(cè)驗(yàn)證及對(duì)數(shù)字進(jìn)行加密、解密功能\n\n作品改進(jìn):利用函數(shù)調(diào)用改進(jìn)了選擇一個(gè)功能后必須重啟程序才能再次選擇另一種功能\n\n作品缺陷:程序判斷用戶(hù)的選擇只能用數(shù)字否則出錯(cuò)(嘗試用過(guò)char類(lèi)型),只能加密\n          9位數(shù)字否則不能正確解密(此BUG與算法無(wú)關(guān)),每選擇一次功能都必須重\n          新輸入序列號(hào),以上原因尚不明確!⊙﹏⊙b汗,希望各位能指教。");

  129.       printf("\n********************************************************************");

  130.    printf("\n\n   O(∩_∩)O哈哈~,請(qǐng)選擇所需要的功能:\n\n 【1】:加密(目前只支持9位任意數(shù)字,原因至今不明  (#‵′)凸\n\n 【2】:解密(只對(duì)本程序加密的密文有效)\n\n 【0】:退出\n\n  ");

  131.    scanf("%d",&a);/*讀取用戶(hù)所輸入的選項(xiàng)并賦值給變量a*/



  132. while(a>2)/*設(shè)定循環(huán)條件,達(dá)到輸入錯(cuò)誤選項(xiàng)即可循環(huán)執(zhí)行確認(rèn)選擇功能指令*/

  133. {

  134.            printf("\n\n   O(∩_∩)O哈哈~,不能亂選哦,請(qǐng)?jiān)俅握J(rèn)真選擇所需要的功能:\n\n 【1】:加密(目前只支持9位任意數(shù)字,原因至今不明  (#‵′)凸\n\n 【2】:解密(只對(duì)本程序加密的密文有效)\n\n 【0】:退出\n\n  ");

  135.    scanf("%d",&a);/*讀取用戶(hù)所輸入的選項(xiàng)并賦值給變量a*/

  136.            }

  137.    if(a==1)/*判斷變量a是否等于1,條件成立則執(zhí)行下面的指令,否則跳過(guò)下面的指令*/

  138.    {

  139.    printf("\n   (*^__^*) 歡迎使用本加密程序【注:試用版只能使用三次】\n");/*顯示說(shuō)明*/

  140.    printf("請(qǐng)輸入序列號(hào):\n\n  ");/*顯示說(shuō)明*/

  141.    scanf("%d",&a);/*讀取用戶(hù)所輸入的序列號(hào)并賦值給變量a*/

  142.   if(a!=0000000000)/*若用戶(hù)所輸入的序列號(hào)不等于0000000000則執(zhí)行下面的指令,否則跳過(guò)下面的指令*/

  143.   jiamiweizhuce();/*調(diào)用jiamiweizhuce函數(shù)*/

  144.   else/*若等于0000000000則運(yùn)行下面指令*/

  145.   jiamiyizhuce();/*調(diào)用jiamiyizhuce函數(shù)*/

  146. }

  147.    if(a==2)/*判斷變量a是否等于1,條件成立則執(zhí)行下面的指令,否則跳過(guò)下面的指令*/

  148.    {

  149.    printf("\n   (*^__^*) 歡迎使用本解密程序【注:試用版只能使用三次】\n");/*顯示說(shuō)明*/

  150.    printf("請(qǐng)輸入序列號(hào):\n\n  ");/*顯示說(shuō)明*/

  151.    scanf("%d",&a);/*讀取用戶(hù)所輸入的序列號(hào)并賦值給變量a*/

  152.   if(a!=0000000000)/*若用戶(hù)所輸入的序列號(hào)不等于0000000000則執(zhí)行下面的指令,否則跳過(guò)下面的指令*/

  153.   jiemiweizhuce();/*調(diào)用jiemiweizhuce代碼*/

  154.   else/*若等于0000000000則運(yùn)行下面指令*/

  155. jiemiyizhuce();/*調(diào)用jiemiyizhuce函數(shù)*/

  156. }

  157. }

  158. int main()/*聲明主函數(shù),每個(gè)C程序必須具備的*/

  159. {

  160. printf("\n                感謝我的兄弟----謝武\n\n   O(∩_∩)O哈哈~!本來(lái)我還沒(méi)那么快學(xué)到函數(shù)調(diào)用知識(shí),\n   看了你不惜耗費(fèi)睡眠時(shí)間(一個(gè)通宵)用C++編寫(xiě)的源代碼\n   讓我有所領(lǐng)悟,謝謝你,祝你考證順利!O(∩_∩)O~\n\n");/**/

  161. system("pause");/*程序掛起*/

  162. int zhu();/*調(diào)用自定義zhu函數(shù)*/

  163. zhu();/*原因尚不明確,若遇到函數(shù)調(diào)用不成功可再次寫(xiě)一次函數(shù)名,有強(qiáng)制調(diào)用函數(shù)的作用*/

  164. }

  165. int tishi()/*自定義tishi函數(shù)*/

  166. {

  167.     int q;/*聲明變量*/

  168.     printf("\n\a\a\a   ╮(╯▽╰)╭對(duì)不起,您使用的次數(shù)已達(dá)到試用版的上限!\n\n"); /*警告用戶(hù)*/

  169. printf("\n\n\nO(∩_∩)O哈哈~,告訴你一個(gè)秘密哈,若想再次使用可以再次運(yùn)行本程序,照樣\n還可以使用三次。不過(guò),如果你這樣做的話,也只能說(shuō)明你笨╮(╯▽╰)╭\n\n\n");/*幽默一下哈↖(^ω^)↗*/

  170. printf("\n返回主菜單請(qǐng)輸入數(shù)字【3】,退出請(qǐng)輸入任意數(shù)字\n\n  ");/*提示*/

  171. scanf("%d",&q);

  172. if(q==3)/*若變量d等于3則運(yùn)行以下代碼,否則省略本段代碼*/

  173. {

  174.        int zhu();/*調(diào)用自定義的zhu函數(shù)*/

  175.        zhu();/*原因尚不明確,若遇到函數(shù)調(diào)用不成功可再次寫(xiě)一次函數(shù)名,有強(qiáng)制調(diào)用函數(shù)的作用*/

  176. }

  177. }

  178. *********************************源代碼****************************************
復(fù)制代碼



回復(fù)

使用道具 舉報(bào)

板凳
ID:71922 發(fā)表于 2015-1-11 01:28 | 只看該作者
本帖最后由 liuyuxi 于 2015-1-11 01:58 編輯

(二次改進(jìn)版):     ↖(^ω^)↗本次靈感來(lái)自常量特性,但改進(jìn)時(shí),卻發(fā)現(xiàn)直接利用函數(shù)調(diào)用就能改進(jìn)選擇一次功 能都必須重新輸入序列號(hào)的缺陷,哈!函數(shù)可  真好玩↖(^ω^)↗,真想跳過(guò)數(shù)組知識(shí)直接學(xué)\n   函數(shù)知識(shí),不過(guò)聽(tīng)說(shuō)數(shù)組也蠻好玩的,不過(guò)...快開(kāi)學(xué)了..........


作品名稱(chēng):數(shù)字密碼加密程序(二次改進(jìn)版)
作品目的:增加對(duì)條件指令、循環(huán)指令的了解并熟悉自定義函數(shù)及調(diào)用函數(shù)的方法
作品功能:實(shí)現(xiàn)注冊(cè)驗(yàn)證及對(duì)數(shù)字進(jìn)行加密、解密功能
作品改進(jìn):利用函數(shù)調(diào)用改進(jìn)了選擇一個(gè)功能后必須重啟程序才能再次選擇另一種功能;改進(jìn)了每選擇一次功能都必須重新輸入序列號(hào)的缺陷
作品缺陷:程序判斷用戶(hù)的選擇只能用數(shù)字否則出錯(cuò)(嘗試用過(guò)char類(lèi)型),只能加密9位數(shù)字否則不能正確解密(此BUG與算法無(wú)關(guān)),無(wú)論注冊(cè)碼是否正確重啟程序后需再次輸入序列號(hào).以上原因尚不明確!⊙﹏⊙b汗.希望各位能多多指教。
源代碼:
  1. #include<stdio.h>/*加載包含基本輸入輸出函數(shù)頭文件*/
  2. #include<stdlib.h>/*加載標(biāo)準(zhǔn)函數(shù)庫(kù)頭文件*/
  3. int jiamiweizhuce(int i=3,int a=0,int d=0)/*聲明自定義jiamiweizhuce函數(shù)(未注冊(cè)限制使用)同時(shí)聲明變量*/
  4. {
  5. /*以下為未注冊(cè)限制代碼↓↓*/
  6.     while(i!=0)/*循環(huán)語(yǔ)句,設(shè)定條件為3次,由聲明變量時(shí)確定,達(dá)到三次后跳出循環(huán)停止運(yùn)行算法*/  
  7.    {
  8.     printf("\n請(qǐng)輸入一組需加密的數(shù)字【未注冊(cè)】\n\n  ");/*顯示說(shuō)明*/
  9.     scanf("%d",&a);/*讀取用戶(hù)所輸入的數(shù)值并賦值給變量a*/
  10.     a=a+100000;/*進(jìn)行加密算法↓↓*/
  11.     a=a+100009;
  12.     a=a+100052;
  13.     a=a+100878;
  14.     a=a+108546;
  15.     a=a+113545;
  16.     a=a+314123;/*進(jìn)行加密算法↑↑*/
  17.     i--;/*運(yùn)行算法一次則i減1,達(dá)到三次后滿足循環(huán)條件即運(yùn)行3次算法,則i=3-3=0*/
  18.     printf("\n\n~\a\(≧▽≦)/~恭喜,已完成加密!密文為:【%d】(還有【%d】次使用權(quán))\n\n",a,i);/*算法完成輸出密文并提醒使用次數(shù)*/
  19.     printf("\n返回主菜單請(qǐng)輸入數(shù)字【3】,繼續(xù)加密請(qǐng)輸入任意數(shù)字\n\n  ");/*提示*/
  20.     scanf("%d",&d);/*讀取用戶(hù)所輸入的數(shù)值并存入變量d*/
  21.     if(d==3)/*若變量d等于3則強(qiáng)制跳出循環(huán)*/
  22.     break;/*強(qiáng)制跳出循環(huán)*/
  23. }
  24. if(d==3)/*若變量d等于3則運(yùn)行以下代碼,否則省略本段代碼*/
  25.        {
  26.        int zhu();/*調(diào)用自定義的zhu函數(shù)*/
  27.        zhu();/*我也不清楚為什么還要再寫(xiě)一次函數(shù)名,我是在我的兄弟"武"的C++代碼得到的啟發(fā),如果沒(méi)這句代碼將無(wú)法調(diào)用此函數(shù)!或許這就是強(qiáng)制調(diào)用函數(shù)吧!*/
  28.        }
  29. system("pause");/*程序掛起*/
  30. int tishi();/*調(diào)用自定義的tishi函數(shù)*/
  31. tishi();/*原因尚不明確,若遇到函數(shù)調(diào)用不成功可再次寫(xiě)一次函數(shù)名,有強(qiáng)制調(diào)用函數(shù)的作用*/
  32. }
  33. int jiamiyizhuce(int i=3,int a=0,int d=0)/*聲明自定義jiamiyizhuce函數(shù)(已注冊(cè)無(wú)限制使用)*/
  34. {
  35.          /*以下為已注冊(cè)無(wú)限制代碼↓↓*/
  36.     for(;;)/*循環(huán)語(yǔ)句,不設(shè)定條件,可無(wú)限次運(yùn)行算法指令*/
  37.    {
  38.     printf("\n請(qǐng)輸入一組需加密的數(shù)字【已注冊(cè),可無(wú)限使用】\n\n  ");/*顯示說(shuō)明*/
  39.     scanf("%d",&a);/*讀取用戶(hù)所輸入的數(shù)值并賦值給變量a*/
  40.     a=a+100000;/*進(jìn)行加密算法↓↓*/
  41.     a=a+100009;
  42.     a=a+100052;
  43.     a=a+100878;
  44.     a=a+108546;
  45.     a=a+113545;
  46.     a=a+314123;/*進(jìn)行加密算法↑↑*/
  47.     printf("\n\n\a~\(≧▽≦)/~恭喜,已完成加密!密文為:【%d】\n\n",a);/*算法完成,輸出密文*/
  48.     printf("\n返回主菜單請(qǐng)輸入數(shù)字【3】,繼續(xù)加密請(qǐng)輸入任意數(shù)字\n\n  ");/*提示*/
  49.     scanf("%d",&d);/*讀取用戶(hù)所輸入的數(shù)值并存入變量d*/
  50.     if(d==3)/*若變量d等于3則強(qiáng)制跳出循環(huán)*/
  51.     break; /*強(qiáng)制跳出循環(huán)*/
  52. }
  53. if(d==3)/*若變量d等于3則運(yùn)行以下代碼,否則省略本段代碼*/
  54.        {
  55.        int yizhuce();/*調(diào)用自定義的yizhuc函數(shù)達(dá)到改進(jìn)重選功能不必再次輸入序列號(hào)*/
  56.        yizhuce();/*原因尚不明確,若遇到函數(shù)調(diào)用不成功可再次寫(xiě)一次函數(shù)名,有強(qiáng)制調(diào)用函數(shù)的作用*/
  57.        }
  58. system("pause");/*程序掛起*/
  59.     }
  60.     int jiemiweizhuce(int i=3,int a=0,int d=0)/*聲明解密未注冊(cè)(限制使用)函數(shù)*/
  61. {
  62.       /*以下為未注冊(cè)限制代碼↓↓*/
  63.     while(i!=0)/*循環(huán)語(yǔ)句,設(shè)定條件為1次,達(dá)到三次后跳出循環(huán)語(yǔ)句即i等于3*/  
  64.    {
  65.     printf("\n請(qǐng)輸入一組需解密的數(shù)字【未注冊(cè)】\n\n  ");/*顯示說(shuō)明*/
  66.     scanf("%d",&a);/*讀取用戶(hù)所輸入的數(shù)值并賦值給變量a*/
  67.     a=a-100000;/*逆行執(zhí)行加密算法↓↓*/
  68.     a=a-100009;
  69.     a=a-100052;
  70.     a=a-100878;
  71.     a=a-108546;
  72.     a=a-113545;
  73.     a=a-314123;/*逆行執(zhí)行加密算法↑↑*/
  74.     i--;/*運(yùn)行算法一次則i加1,達(dá)到三次后滿足循環(huán)條件*/
  75.     printf("\n\a   ~\(≧▽≦)/~恭喜,已完成解密!密碼為:【%d】(還有【%d】次使用權(quán))\n\n",a,i);/*算法完成輸出真實(shí)密碼*/
  76.        printf("\n返回主菜單請(qǐng)輸入數(shù)字【3】,繼續(xù)加密請(qǐng)輸入任意數(shù)字\n\n  ");/*提示*/
  77.     scanf("%d",&d);/*讀取用戶(hù)所輸入的數(shù)值并存入變量d*/
  78.     if(d==3)/*若變量d等于3則強(qiáng)制跳出循環(huán)*/
  79.     break;/*強(qiáng)制跳出循環(huán)*/
  80. }
  81. if(d==3)/*若變量d等于3則運(yùn)行以下代碼,否則省略本段代碼*/
  82.        {
  83.        int zhu();/*調(diào)用自定義的zhu函數(shù)*/
  84.        zhu();/*原因尚不明確,若遇到函數(shù)調(diào)用不成功可再次寫(xiě)一次函數(shù)名,有強(qiáng)制調(diào)用函數(shù)的作用*/
  85.        }
  86. system("pause");/*程序掛起*/
  87. int tishi();/*調(diào)用自定義的tishi函數(shù)*/
  88. tishi();/*原因尚不明確,若遇到函數(shù)調(diào)用不成功可再次寫(xiě)一次函數(shù)名,有強(qiáng)制調(diào)用函數(shù)的作用*/
  89. }
  90.     int jiemiyizhuce(int i=3,int a=0,int d=0)/*聲明解密已注冊(cè)(解除限制)函數(shù)*/
  91.     {
  92.              /*以下為已注冊(cè)無(wú)限制代碼↓↓*/
  93.     for(;;)/*循環(huán)語(yǔ)句,不設(shè)定條件*/
  94.    {
  95.     printf("\n請(qǐng)輸入一組需解密的數(shù)字【已注冊(cè),可無(wú)限使用】\n\n  ");/*顯示說(shuō)明*/
  96.     scanf("%d",&a);/*讀取用戶(hù)所輸入的數(shù)值并賦值給變量a*/
  97.     a=a-100000;/*逆行執(zhí)行加密算法↓↓*/
  98.     a=a-100009;
  99.     a=a-100052;
  100.     a=a-100878;
  101.     a=a-108546;
  102.     a=a-113545;
  103.     a=a-314123;/*逆行執(zhí)行加密算法↑↑*/
  104.     printf("\n\n\a   ~\(≧▽≦)/~恭喜,已完成解密!密碼為:【%d】\n\n",a);/*算法完成輸出真實(shí)密碼*/
  105.     printf("\n返回主菜單請(qǐng)輸入數(shù)字【3】,繼續(xù)加密請(qǐng)輸入任意數(shù)字\n\n  ");/*提示*/
  106.     scanf("%d",&d);/*讀取用戶(hù)所輸入的數(shù)值并存入變量d*/
  107.     if(d==3)/*若變量d等于3則強(qiáng)制跳出循環(huán)*/
  108.     break; /*強(qiáng)制跳出循環(huán)*/
  109. }
  110. if(d==3)/*若變量d等于3則運(yùn)行以下代碼,否則省略本段代碼*/
  111.        {
  112.        int yizhuce();/*調(diào)用自定義的yizhuc函數(shù)達(dá)到改進(jìn)重選功能不必再次輸入序列號(hào)*/
  113.        yizhuce();/*原因尚不明確,若遇到函數(shù)調(diào)用不成功可再次寫(xiě)一次函數(shù)名,有強(qiáng)制調(diào)用函數(shù)的作用*/
  114.        }
  115. system("pause");/*程序掛起*/
  116.     }
  117. int zhu()/*自定義zhu函數(shù)*/
  118.     {
  119.     int a,i=3;/*聲明整數(shù)變量a、i,并把賦值3給i*/
  120.        printf("\n********************************************************************");
  121.        printf("\n   此程序?yàn)镃語(yǔ)言編寫(xiě),編譯器為:DEV-C++ 4.9.9.2 多國(guó)語(yǔ)言版");
  122.    printf("\n\n   愿結(jié)交對(duì)C語(yǔ)言深感興趣并研究過(guò)C語(yǔ)言的朋友\n   若有任何建議或愿共同探討請(qǐng)聯(lián)系QQ:0000000000\n   本程序,采用垃圾算法,純屬練習(xí)作品,各位不必當(dāng)真。\n");
  123.    
  124.    printf("\n********************************************************************\n");
  125.    system("pause");
  126.    printf("\n作品名稱(chēng):數(shù)字密碼加密程序(二次改進(jìn)版)\n\n作品目的:增加對(duì)條件指令、循環(huán)指令的了解并熟悉自定義函數(shù)及調(diào)用函數(shù)的方法\n\n作品功能:實(shí)現(xiàn)注冊(cè)驗(yàn)證及對(duì)數(shù)字進(jìn)行加密、解密功能\n\n作品改進(jìn):利用函數(shù)調(diào)用改進(jìn)了選擇一個(gè)功能后必須重啟程序才能再次選擇另一種功能\n          改進(jìn)了每選擇一次功能都必須重新輸入序列號(hào)的缺陷\n\n作品缺陷:程序判斷用戶(hù)的選擇只能用數(shù)字否則出錯(cuò)(嘗試用過(guò)char類(lèi)型),只能加密\n          9位數(shù)字否則不能正確解密(此BUG與算法無(wú)關(guān)),無(wú)論注冊(cè)碼是否正確重啟\n          程序后需再次輸入序列號(hào).以上原因尚不明確!⊙﹏⊙b汗.希望各位能多多\n          指教。");
  127.       printf("\n********************************************************************");
  128.    printf("\n\n   O(∩_∩)O哈哈~,請(qǐng)選擇所需要的功能:\n\n 【1】:加密(目前只支持9位任意數(shù)字,原因至今不明  (#‵′)凸\n\n 【2】:解密(只對(duì)本程序加密的密文有效)\n\n 【0】:退出\n\n  ");
  129.    scanf("%d",&a);/*讀取用戶(hù)所輸入的選項(xiàng)并賦值給變量a*/
  130. while(a>2)/*設(shè)定循環(huán)條件,達(dá)到輸入錯(cuò)誤選項(xiàng)即可循環(huán)執(zhí)行確認(rèn)選擇功能指令*/
  131. {
  132.            printf("\n\n   O(∩_∩)O哈哈~,不能亂選哦,請(qǐng)?jiān)俅握J(rèn)真選擇所需要的功能:\n\n 【1】:加密(目前只支持9位任意數(shù)字,原因至今不明  (#‵′)凸\n\n 【2】:解密(只對(duì)本程序加密的密文有效)\n\n 【0】:退出\n\n  ");
  133.    scanf("%d",&a);/*讀取用戶(hù)所輸入的選項(xiàng)并賦值給變量a*/
  134.            }
  135.    if(a==1)/*判斷變量a是否等于1,條件成立則執(zhí)行下面的指令,否則跳過(guò)下面的指令*/
  136.    {
  137.    printf("\n   (*^__^*) 歡迎使用本加密程序【注:試用版只能使用三次】\n");/*顯示說(shuō)明*/
  138.    printf("請(qǐng)輸入序列號(hào):\n\n  ");/*顯示說(shuō)明*/
  139.    scanf("%d",&a);/*讀取用戶(hù)所輸入的序列號(hào)并賦值給變量a*/
  140.   if(a!=0000000000)/*若用戶(hù)所輸入的序列號(hào)不等于0000000000則執(zhí)行下面的指令,否則跳過(guò)下面的指令*/
  141.   jiamiweizhuce();/*調(diào)用jiamiweizhuce函數(shù)*/
  142.   else/*若等于0000000000則運(yùn)行下面指令*/
  143.   jiamiyizhuce();/*調(diào)用jiamiyizhuce函數(shù)*/
  144. }
  145.    if(a==2)/*判斷變量a是否等于1,條件成立則執(zhí)行下面的指令,否則跳過(guò)下面的指令*/
  146.    {
  147.    printf("\n   (*^__^*) 歡迎使用本解密程序【注:試用版只能使用三次】\n");/*顯示說(shuō)明*/
  148.    printf("請(qǐng)輸入序列號(hào):\n\n  ");/*顯示說(shuō)明*/
  149.    scanf("%d",&a);/*讀取用戶(hù)所輸入的序列號(hào)并賦值給變量a*/
  150.   if(a!=0000000000)/*若用戶(hù)所輸入的序列號(hào)不等于0000000000則執(zhí)行下面的指令,否則跳過(guò)下面的指令*/
  151.   jiemiweizhuce();/*調(diào)用jiemiweizhuce代碼*/
  152.   else/*若等于0000000000則運(yùn)行下面指令*/
  153. jiemiyizhuce();/*調(diào)用jiemiyizhuce函數(shù)*/
  154. }
  155. }
  156. int main()/*聲明主函數(shù),每個(gè)C程序必須具備的*/
  157. {
  158. printf("\n                    靈感\(zhòng)n\n   ↖(^ω^)↗本次靈感來(lái)自常量特性,但改進(jìn)時(shí),\n   卻發(fā)現(xiàn)直接利用函數(shù)調(diào)用就能改進(jìn)選擇一次功\n   能都必須重新輸入序列號(hào)的缺陷,哈!函數(shù)可\n   真好玩↖(^ω^)↗,真想跳過(guò)數(shù)組知識(shí)直接學(xué)\n   函數(shù)知識(shí),不過(guò)聽(tīng)說(shuō)數(shù)組也蠻好玩的,不過(guò)...\n   快開(kāi)學(xué)了..........\n\n");/**/
  159. system("pause");/*程序掛起*/
  160. int zhu();/*調(diào)用自定義zhu函數(shù)*/
  161. zhu();/*原因尚不明確,若遇到函數(shù)調(diào)用不成功可再次寫(xiě)一次函數(shù)名,有強(qiáng)制調(diào)用函數(shù)的作用*/
  162. }  
  163. int tishi()/*自定義tishi函數(shù)*/
  164. {
  165.     int q;/*聲明變量*/
  166.     printf("\n\a\a\a   ╮(╯▽╰)╭對(duì)不起,您使用的次數(shù)已達(dá)到試用版的上限!\n\n"); /*警告用戶(hù)*/
  167. printf("\n\n\nO(∩_∩)O哈哈~,告訴你一個(gè)秘密哈,若想再次使用可以再次運(yùn)行本程序,照樣\n還可以使用三次。不過(guò),如果你這樣做的話,也只能說(shuō)明你笨╮(╯▽╰)╭\n\n\n");/*幽默一下哈↖(^ω^)↗*/
  168. printf("\n返回主菜單請(qǐng)輸入數(shù)字【3】,退出請(qǐng)輸入任意數(shù)字\n\n  ");/*提示*/
  169. scanf("%d",&q);
  170. if(q==3)/*若變量d等于3則運(yùn)行以下代碼,否則省略本段代碼*/
  171. {
  172.        int zhu();/*調(diào)用自定義的zhu函數(shù)*/
  173.        zhu();/*原因尚不明確,若遇到函數(shù)調(diào)用不成功可再次寫(xiě)一次函數(shù)名,有強(qiáng)制調(diào)用函數(shù)的作用*/
  174. }
  175. }
  176. int yizhuce()/*自定義yizhuce函數(shù)*//*此函數(shù)已去除驗(yàn)證序列號(hào)的功能*/
  177.     {
  178.     int a,i=3;/*聲明整數(shù)變量a、i,并把賦值3給i*/
  179.       printf("\n********************************************************************");
  180.        printf("\n   此程序?yàn)镃語(yǔ)言編寫(xiě),編譯器為:DEV-C++ 4.9.9.2 多國(guó)語(yǔ)言版");
  181.    printf("\n\n   愿結(jié)交對(duì)C語(yǔ)言深感興趣并研究過(guò)C語(yǔ)言的朋友\n   若有任何建議或愿共同探討請(qǐng)聯(lián)系QQ:0000000000\n   本程序,采用垃圾算法,純屬練習(xí)作品,各位不必當(dāng)真。\n");
  182.    
  183.    printf("\n********************************************************************\n");
  184.    system("pause");
  185.    printf("\n作品名稱(chēng):數(shù)字密碼加密程序(二次改進(jìn)版)\n\n作品目的:增加對(duì)條件指令、循環(huán)指令的了解并熟悉自定義函數(shù)及調(diào)用函數(shù)的方法\n\n作品功能:實(shí)現(xiàn)注冊(cè)驗(yàn)證及對(duì)數(shù)字進(jìn)行加密、解密功能\n\n作品改進(jìn):利用函數(shù)調(diào)用改進(jìn)了選擇一個(gè)功能后必須重啟程序才能再次選擇另一種功能\n          改進(jìn)了每選擇一次功能都必須重新輸入序列號(hào)的缺陷\n\n作品缺陷:程序判斷用戶(hù)的選擇只能用數(shù)字否則出錯(cuò)(嘗試用過(guò)char類(lèi)型),只能加密\n          9位數(shù)字否則不能正確解密(此BUG與算法無(wú)關(guān)),無(wú)論注冊(cè)碼是否正確重啟\n          程序后需再次輸入序列號(hào).以上原因尚不明確!⊙﹏⊙b汗.希望各位能多多\n          指教。");
  186.       printf("\n********************************************************************");
  187.    printf("\n\n   O(∩_∩)O哈哈~,請(qǐng)選擇所需要的功能:\n\n 【1】:加密(目前只支持9位任意數(shù)字,原因至今不明  (#‵′)凸\n\n 【2】:解密(只對(duì)本程序加密的密文有效)\n\n 【0】:退出\n\n  ");
  188.    scanf("%d",&a);/*讀取用戶(hù)所輸入的選項(xiàng)并賦值給變量a*/
  189. while(a>2)/*設(shè)定循環(huán)條件,達(dá)到輸入錯(cuò)誤選項(xiàng)即可循環(huán)執(zhí)行確認(rèn)選擇功能指令*/
  190. {
  191.            printf("\n\n   O(∩_∩)O哈哈~,不能亂選哦,請(qǐng)?jiān)俅握J(rèn)真選擇所需要的功能:\n\n 【1】:加密(目前只支持9位任意數(shù)字,原因至今不明  (#‵′)凸\n\n 【2】:解密(只對(duì)本程序加密的密文有效)\n\n 【0】:退出\n\n  ");
  192.    scanf("%d",&a);/*讀取用戶(hù)所輸入的選項(xiàng)并賦值給變量a*/
  193.            }
  194.    if(a==1)/*判斷變量a是否等于1,條件成立則執(zhí)行下面的指令,否則跳過(guò)下面的指令*/
  195.    {
  196.   jiamiyizhuce();/*調(diào)用jiamiyizhuce函數(shù)*/
  197. }
  198.    if(a==2)/*判斷變量a是否等于1,條件成立則執(zhí)行下面的指令,否則跳過(guò)下面的指令*/
  199.    {
  200. jiemiyizhuce();/*調(diào)用jiemiyizhuce函數(shù)*/
  201. }
  202. }
復(fù)制代碼


回復(fù)

使用道具 舉報(bào)

地板
ID:71922 發(fā)表于 2015-1-11 01:30 | 只看該作者
本帖最后由 liuyuxi 于 2015-1-11 01:57 編輯

(二次改進(jìn)版)發(fā)現(xiàn)BUG 已修正:

郁悶,昨天調(diào)試了一下這個(gè)程序,當(dāng)使用時(shí)一種加密或解密功能,輸入0時(shí)應(yīng)該會(huì)直接退出,可它還會(huì)顯示出   
“╮(╯▽╰)╭對(duì)不起,您使用的次數(shù)已達(dá)到試用版的上限!
O(_)O哈哈~,告訴你一個(gè)秘密哈,若想再次使用可以再次運(yùn)行本程序,照樣還可以使用三次。不過(guò),如果你這樣做的話,也只能說(shuō)明你笨”
這樣的一段話,也就是說(shuō),輸入0后會(huì)先跳到tishi自定義函數(shù)
詳情請(qǐng)看源代碼.......BUG結(jié)果為:條件命令的“失敗經(jīng)過(guò)”
失敗經(jīng)過(guò):(以switch條件語(yǔ)句進(jìn)行解釋?zhuān)?/font>
switch(條件表達(dá)式)
{
case 結(jié)果1
程序語(yǔ)句代碼;
break;
case 結(jié)果2
程序語(yǔ)句代碼;
break;
………..
default:
程序語(yǔ)句代碼;
}
Switch條件語(yǔ)句,如果找到相同的結(jié)果值則執(zhí)行該case內(nèi)的程序語(yǔ)句,當(dāng)執(zhí)行完case塊后,并不會(huì)直接離開(kāi)switch塊。還是會(huì)往下繼續(xù)執(zhí)行其他case語(yǔ)句和default語(yǔ)句(程序從上往下執(zhí)行),這樣的情形成為“失敗經(jīng)過(guò)”現(xiàn)象。因此通常每道case語(yǔ)句后面必須加上break語(yǔ)句來(lái)結(jié)束switch語(yǔ)句,才可以避免。
最根本原因是因?yàn)槲也恢劳顺龊瘮?shù),所以只能利用下面自己發(fā)現(xiàn)的規(guī)律來(lái)達(dá)到輸入任意鍵即可退出:
2】,if(條件表達(dá)式).......else 若沒(méi)寫(xiě)最后一個(gè)else,又不符合條件表達(dá)式,則默認(rèn)退出(下面必須無(wú)代碼若有則直接運(yùn)行下面的代碼)
成功利用此規(guī)律的為我第一、二次發(fā)表程序當(dāng)?shù)谌胃倪M(jìn)程序時(shí)破壞了這個(gè)規(guī)律所以會(huì)導(dǎo)致出現(xiàn)這個(gè)BUG…⊙﹏⊙b汗,以后這個(gè)規(guī)律還是少用為妙~~~
修正版界面:
修正版的源代碼:
=========================================================================
#include<stdio.h>/*加載包含基本輸入輸出函數(shù)頭文件*/
#include<stdlib.h>/*加載標(biāo)準(zhǔn)函數(shù)庫(kù)頭文件*/
int main()/*聲明主函數(shù),每個(gè)C程序必須具備的*/
{
printf("\n                    靈感\(zhòng)n\n   ↖(^ω^)↗本次靈感來(lái)自常量特性,但改進(jìn)時(shí),\n   卻發(fā)現(xiàn)直接利用函數(shù)調(diào)用就能改進(jìn)選擇一次功\n   能都必須重新輸入序列號(hào)的缺陷,哈!函數(shù)可\n   真好玩↖(^ω^)↗,真想跳過(guò)數(shù)組知識(shí)直接學(xué)\n   函數(shù)知識(shí),不過(guò)聽(tīng)說(shuō)數(shù)組也蠻好玩的,可是...\n   快開(kāi)學(xué)了..........\n\n");
system("pause");/*程序掛起*/
int zhu();/*調(diào)用自定義zhu函數(shù)*/
zhu();/*原因尚不明確,若遇到函數(shù)調(diào)用不成功可再次寫(xiě)一次函數(shù)名,有強(qiáng)制調(diào)用函數(shù)的作用*/
}
/*******************************注冊(cè)驗(yàn)證及數(shù)字加密功能代碼**********************************/
int jiamiweizhuce(int i=3,int a=0,int d=0)/*聲明自定義jiamiweizhuce函數(shù)(未注冊(cè)限制使用)同時(shí)聲明變量*/
{
/*以下為未注冊(cè)限制代碼↓↓*/
    while(i!=0)/*循環(huán)語(yǔ)句,設(shè)定條件為3次,由聲明變量時(shí)確定,達(dá)到三次后跳出循環(huán)停止運(yùn)行算法*/  
   {
    printf("\n請(qǐng)輸入一組需加密的數(shù)字【未注冊(cè)】\n\n  ");/*顯示說(shuō)明*/
    scanf("%d",&a);/*讀取用戶(hù)所輸入的數(shù)值并賦值給變量a*/
    a=a+100000;/*進(jìn)行加密算法↓↓*/
    a=a+100009;
    a=a+100052;
    a=a+100878;
    a=a+108546;
    a=a+113545;
    a=a+314123;/*進(jìn)行加密算法↑↑*/
    i--;/*運(yùn)行算法一次則i減1,達(dá)到三次后滿足循環(huán)條件即運(yùn)行3次算法,則i=3-3=0*/
    printf("\n\n~\a\(≧▽≦)/~恭喜,已完成加密!密文為:【%d】(還有【%d】次使用權(quán))\n\n",a,i);/*算法完成輸出密文并提醒使用次數(shù)*/
    printf("\n返回主菜單請(qǐng)輸入數(shù)字【3】,繼續(xù)加密請(qǐng)輸入任意數(shù)字\n\n  ");/*提示*/
    scanf("%d",&d);/*讀取用戶(hù)所輸入的數(shù)值并存入變量d*/
    if(d==3)/*若變量d等于3則強(qiáng)制跳出循環(huán)*/
    break;/*強(qiáng)制跳出循環(huán)*/
}
if(d==3)/*若變量d等于3則運(yùn)行以下代碼,否則省略本段代碼*/
       {
       int zhu();/*調(diào)用自定義的zhu函數(shù)*/
       zhu();/*我也不清楚為什么還要再寫(xiě)一次函數(shù)名,我是在我的兄弟"武"的C++代碼得到的啟發(fā),如果沒(méi)這句代碼將無(wú)法調(diào)用此函數(shù)!或許這就是強(qiáng)制調(diào)用函數(shù)吧!*/
       }
system("pause");/*程序掛起*/
int tishi();/*調(diào)用自定義的tishi函數(shù)*/
tishi();/*原因尚不明確,若遇到函數(shù)調(diào)用不成功可再次寫(xiě)一次函數(shù)名,有強(qiáng)制調(diào)用函數(shù)的作用*/
}
int jiamiyizhuce(int i=3,int a=0,int d=0)/*聲明自定義jiamiyizhuce函數(shù)(已注冊(cè)無(wú)限制使用)*/
{
         /*以下為已注冊(cè)無(wú)限制代碼↓↓*/
    for(;;)/*循環(huán)語(yǔ)句,不設(shè)定條件,可無(wú)限次運(yùn)行算法指令*/
   {
    printf("\n請(qǐng)輸入一組需加密的數(shù)字【已注冊(cè),可無(wú)限使用】\n\n  ");/*顯示說(shuō)明*/
    scanf("%d",&a);/*讀取用戶(hù)所輸入的數(shù)值并賦值給變量a*/
    a=a+100000;/*進(jìn)行加密算法↓↓*/
    a=a+100009;
    a=a+100052;
    a=a+100878;
    a=a+108546;
    a=a+113545;
    a=a+314123;/*進(jìn)行加密算法↑↑*/
    printf("\n\n\a~\(≧▽≦)/~恭喜,已完成加密!密文為:【%d】\n\n",a);/*算法完成,輸出密文*/
    printf("\n返回主菜單請(qǐng)輸入數(shù)字【3】,繼續(xù)加密請(qǐng)輸入任意數(shù)字\n\n  ");/*提示*/
    scanf("%d",&d);/*讀取用戶(hù)所輸入的數(shù)值并存入變量d*/
    if(d==3)/*若變量d等于3則強(qiáng)制跳出循環(huán)*/
    break; /*強(qiáng)制跳出循環(huán)*/
}
if(d==3)/*若變量d等于3則運(yùn)行以下代碼,否則省略本段代碼*/
       {
       int yizhuce();/*調(diào)用自定義的yizhuc函數(shù)達(dá)到改進(jìn)重選功能不必再次輸入序列號(hào)*/
       yizhuce();/*原因尚不明確,若遇到函數(shù)調(diào)用不成功可再次寫(xiě)一次函數(shù)名,有強(qiáng)制調(diào)用函數(shù)的作用*/
       }
system("pause");/*程序掛起*/
    }
    int jiemiweizhuce(int i=3,int a=0,int d=0)/*聲明解密未注冊(cè)(限制使用)函數(shù)*/
{
      /*以下為未注冊(cè)限制代碼↓↓*/
    while(i!=0)/*循環(huán)語(yǔ)句,設(shè)定條件為3次,達(dá)到三次后跳出循環(huán)語(yǔ)句即i等于3*/  
   {
    printf("\n請(qǐng)輸入一組需解密的數(shù)字【未注冊(cè)】\n\n  ");/*顯示說(shuō)明*/
    scanf("%d",&a);/*讀取用戶(hù)所輸入的數(shù)值并賦值給變量a*/
    a=a-100000;/*逆行執(zhí)行加密算法↓↓*/
    a=a-100009;
    a=a-100052;
    a=a-100878;
    a=a-108546;
    a=a-113545;
    a=a-314123;/*逆行執(zhí)行加密算法↑↑*/
    i--;/*運(yùn)行算法一次則i加1,達(dá)到三次后滿足循環(huán)條件*/
    printf("\n\a   ~\(≧▽≦)/~恭喜,已完成解密!密碼為:【%d】(還有【%d】次使用權(quán))\n\n",a,i);/*算法完成輸出真實(shí)密碼*/
       printf("\n返回主菜單請(qǐng)輸入數(shù)字【3】,繼續(xù)解密請(qǐng)輸入任意數(shù)字\n\n  ");/*提示*/
    scanf("%d",&d);/*讀取用戶(hù)所輸入的數(shù)值并存入變量d*/
    if(d==3)/*若變量d等于3則強(qiáng)制跳出循環(huán)*/
    break;/*強(qiáng)制跳出循環(huán)*/
}
if(d==3)/*若變量d等于3則運(yùn)行以下代碼,否則省略本段代碼*/
       {
       int zhu();/*調(diào)用自定義的zhu函數(shù)*/
       zhu();/*原因尚不明確,若遇到函數(shù)調(diào)用不成功可再次寫(xiě)一次函數(shù)名,有強(qiáng)制調(diào)用函數(shù)的作用*/
       }
system("pause");/*程序掛起*/
int tishi();/*調(diào)用自定義的tishi函數(shù)*/
tishi();/*原因尚不明確,若遇到函數(shù)調(diào)用不成功可再次寫(xiě)一次函數(shù)名,有強(qiáng)制調(diào)用函數(shù)的作用*/
}
    int jiemiyizhuce(int i=3,int a=0,int d=0)/*聲明解密已注冊(cè)(解除限制)函數(shù)*/
    {
             /*以下為已注冊(cè)無(wú)限制代碼↓↓*/
    for(;;)/*循環(huán)語(yǔ)句,不設(shè)定條件*/
   {
    printf("\n請(qǐng)輸入一組需解密的數(shù)字【已注冊(cè),可無(wú)限使用】\n\n  ");/*顯示說(shuō)明*/
    scanf("%d",&a);/*讀取用戶(hù)所輸入的數(shù)值并賦值給變量a*/
    a=a-100000;/*逆行執(zhí)行加密算法↓↓*/
    a=a-100009;
    a=a-100052;
    a=a-100878;
    a=a-108546;
    a=a-113545;
    a=a-314123;/*逆行執(zhí)行加密算法↑↑*/
    printf("\n\n\a   ~\(≧▽≦)/~恭喜,已完成解密!密碼為:【%d】\n\n",a);/*算法完成輸出真實(shí)密碼*/
    printf("\n返回主菜單請(qǐng)輸入數(shù)字【3】,繼續(xù)解密請(qǐng)輸入任意數(shù)字\n\n  ");/*提示*/
    scanf("%d",&d);/*讀取用戶(hù)所輸入的數(shù)值并存入變量d*/
    if(d==3)/*若變量d等于3則強(qiáng)制跳出循環(huán)*/
    break; /*強(qiáng)制跳出循環(huán)*/
}
if(d==3)/*若變量d等于3則運(yùn)行以下代碼,否則省略本段代碼*/
       {
       int yizhuce();/*調(diào)用自定義的yizhuc函數(shù)達(dá)到改進(jìn)重選功能不必再次輸入序列號(hào)*/
       yizhuce();/*原因尚不明確,若遇到函數(shù)調(diào)用不成功可再次寫(xiě)一次函數(shù)名,有強(qiáng)制調(diào)用函數(shù)的作用*/
       }
system("pause");/*程序掛起*/
    }
/*******************************注冊(cè)驗(yàn)證及數(shù)字加密功能代碼**********************************/
/****************************************主要代碼*******************************************/
int zhu()/*自定義zhu函數(shù)*/
    {
    int a,i=3;/*聲明整數(shù)變量a、i,并把賦值3給i*/
       printf("\n********************************************************************");
       printf("\n   此程序?yàn)镃語(yǔ)言編寫(xiě),編譯器為:DEV-C++ 4.9.9.2 多國(guó)語(yǔ)言版");
   printf("\n\n   愿結(jié)交對(duì)C語(yǔ)言深感興趣并研究過(guò)C語(yǔ)言的朋友\n   若有任何建議或愿共同探討請(qǐng)聯(lián)系QQ:0000000000\n   本程序,采用垃圾算法,純屬練習(xí)作品,各位不必當(dāng)真。\n");
   
   printf("\n********************************************************************\n");
   system("pause");
   printf("\n作品名稱(chēng):數(shù)字密碼加密程序(二次改進(jìn)版)\n\n作品目的:增加對(duì)條件指令、循環(huán)指令的了解并熟悉自定義函數(shù)及調(diào)用函數(shù)的方法\n\n作品功能:實(shí)現(xiàn)注冊(cè)驗(yàn)證及對(duì)數(shù)字進(jìn)行加密、解密功能\n\n作品改進(jìn):利用函數(shù)調(diào)用改進(jìn)了選擇一個(gè)功能后必須重啟程序才能再次選擇另一種功能\n          改進(jìn)了每選擇一次功能都必須重新輸入序列號(hào)的缺陷\n\n作品缺陷:程序判斷用戶(hù)的選擇只能用數(shù)字否則出錯(cuò)(嘗試用過(guò)char類(lèi)型),只能加密\n          9位數(shù)字否則不能正確解密(此BUG與算法無(wú)關(guān)),無(wú)論注冊(cè)碼是否正確重啟\n          程序后需再次輸入序列號(hào).以上原因尚不明確!⊙﹏⊙b汗.希望各位能多多\n          指教。");
      printf("\n********************************************************************");
   printf("\n\n   O(∩_∩)O哈哈~,請(qǐng)選擇所需要的功能:\n\n 【1】:加密(目前只支持9位任意數(shù)字,原因至今不明  (#‵′)凸\n\n 【2】:解密(只對(duì)本程序加密的密文有效)\n\n 【0】:退出\n\n  ");
   scanf("%d",&a);/*讀取用戶(hù)所輸入的選項(xiàng)并賦值給變量a*/
while(a>2)/*設(shè)定循環(huán)條件,達(dá)到輸入錯(cuò)誤選項(xiàng)即可循環(huán)執(zhí)行確認(rèn)選擇功能指令*/
{
           printf("\n\n   O(∩_∩)O哈哈~,不能亂選哦,請(qǐng)?jiān)俅握J(rèn)真選擇所需要的功能:\n\n 【1】:加密(目前只支持9位任意數(shù)字,原因至今不明  (#‵′)凸\n\n 【2】:解密(只對(duì)本程序加密的密文有效)\n\n 【0】:退出\n\n  ");
   scanf("%d",&a);/*讀取用戶(hù)所輸入的選項(xiàng)并賦值給變量a*/
           }
switch(a)/*判斷語(yǔ)句,在c++稱(chēng)為開(kāi)關(guān)語(yǔ)句*/
{
case 1:/*若a等于1則運(yùn)行下面代碼*/
   printf("\n   (*^__^*) 歡迎使用本加密程序【注:試用版只能使用三次】\n");/*顯示說(shuō)明*/
   printf("請(qǐng)輸入序列號(hào):\n\n  ");/*顯示說(shuō)明*/
   scanf("%d",&a);/*讀取用戶(hù)所輸入的序列號(hào)并賦值給變量a*/
  if(a!=0000000000)/*若用戶(hù)所輸入的序列號(hào)不等于0000000000則執(zhí)行下面的指令,否則跳過(guò)下面的指令*/
  jiamiweizhuce();/*調(diào)用jiamiweizhuce函數(shù)*/
  else/*若等于0000000000則運(yùn)行下面指令*/
  jiamiyizhuce();/*調(diào)用jiamiyizhuce函數(shù)*/
break;/*跳出判斷語(yǔ)句避免“失敗經(jīng)過(guò)”*/
case 2:/*如果a等于2則運(yùn)行下面代碼*/
   printf("\n   (*^__^*) 歡迎使用本解密程序【注:試用版只能使用三次】\n");/*顯示說(shuō)明*/
   printf("請(qǐng)輸入序列號(hào):\n\n  ");/*顯示說(shuō)明*/
   scanf("%d",&a);/*讀取用戶(hù)所輸入的序列號(hào)并賦值給變量a*/
  if(a!=0000000000)/*若用戶(hù)所輸入的序列號(hào)不等于0000000000則執(zhí)行下面的指令,否則跳過(guò)下面的指令*/
  jiemiweizhuce();/*調(diào)用jiemiweizhuce代碼*/
  else/*若等于0000000000則運(yùn)行下面指令*/
jiemiyizhuce();/*調(diào)用jiemiyizhuce函數(shù)*/
break;/*跳出判斷語(yǔ)句避免“失敗經(jīng)過(guò)”*/
case 0:/*若a等于0則運(yùn)行下面代碼*/
exit(0);/*退出程序*/
break;/*跳出判斷語(yǔ)句避免“失敗經(jīng)過(guò)”*/
}
}
  
int tishi()/*自定義tishi函數(shù)*/
{
    int q;/*聲明變量*/
    printf("\n\a\a\a   ╮(╯▽╰)╭對(duì)不起,您使用的次數(shù)已達(dá)到試用版的上限!\n\n"); /*警告用戶(hù)*/
printf("\n\n\nO(∩_∩)O哈哈~,告訴你一個(gè)秘密哈,若想再次使用可以再次運(yùn)行本程序,照樣\n還可以使用三次。不過(guò),如果你這樣做的話,也只能說(shuō)明你笨╮(╯▽╰)╭\n\n\n");/*幽默一下哈↖(^ω^)↗*/
printf("\n返回主菜單請(qǐng)輸入數(shù)字【3】,退出請(qǐng)輸入任意數(shù)字\n\n  ");/*提示*/
scanf("%d",&q);/*讀取用戶(hù)所輸入數(shù)值并存入變量q*/
if(q==3)/*若變量d等于3則運(yùn)行以下代碼,否則省略本段代碼*/
{
       int zhu();/*調(diào)用自定義的zhu函數(shù)*/
       zhu();/*原因尚不明確,若遇到函數(shù)調(diào)用不成功可再次寫(xiě)一次函數(shù)名,有強(qiáng)制調(diào)用函數(shù)的作用*/
}
else/*若不等于則運(yùn)行下面代碼即退出,達(dá)到按任意數(shù)字鍵退出的目的*/
exit(0);/*退出程序*/
}
int yizhuce()/*自定義yizhuce函數(shù)*//*此函數(shù)已去除驗(yàn)證序列號(hào)的功能*/
    {
    int a,i=3;/*聲明整數(shù)變量a、i,并把賦值3給i*/
      printf("\n********************************************************************");
       printf("\n   此程序?yàn)镃語(yǔ)言編寫(xiě),編譯器為:DEV-C++ 4.9.9.2 多國(guó)語(yǔ)言版");
   printf("\n\n   愿結(jié)交對(duì)C語(yǔ)言深感興趣并研究過(guò)C語(yǔ)言的朋友\n   若有任何建議或愿共同探討請(qǐng)聯(lián)系QQ:0000000000\n   本程序,采用垃圾算法,純屬練習(xí)作品,各位不必當(dāng)真。\n");
   
   printf("\n********************************************************************\n");
   system("pause");/*程序掛起代碼*/
   printf("\n作品名稱(chēng):數(shù)字密碼加密程序(二次改進(jìn)版)\n\n作品目的:增加對(duì)條件指令、循環(huán)指令的了解并熟悉自定義函數(shù)及調(diào)用函數(shù)的方法\n\n作品功能:實(shí)現(xiàn)注冊(cè)驗(yàn)證及對(duì)數(shù)字進(jìn)行加密、解密功能\n\n作品改進(jìn):利用函數(shù)調(diào)用改進(jìn)了選擇一個(gè)功能后必須重啟程序才能再次選擇另一種功能\n          改進(jìn)了每選擇一次功能都必須重新輸入序列號(hào)的缺陷\n\n作品缺陷:程序判斷用戶(hù)的選擇只能用數(shù)字否則出錯(cuò)(嘗試用過(guò)char類(lèi)型),只能加密\n          9位數(shù)字否則不能正確解密(此BUG與算法無(wú)關(guān)),無(wú)論注冊(cè)碼是否正確重啟\n          程序后需再次輸入序列號(hào).以上原因尚不明確!⊙﹏⊙b汗.希望各位能多多\n          指教。");
      printf("\n********************************************************************");
   printf("\n\n   O(∩_∩)O哈哈~,請(qǐng)選擇所需要的功能:\n\n 【1】:加密(目前只支持9位任意數(shù)字,原因至今不明  (#‵′)凸\n\n 【2】:解密(只對(duì)本程序加密的密文有效)\n\n 【0】:退出\n\n  ");
   scanf("%d",&a);/*讀取用戶(hù)所輸入的選項(xiàng)并賦值給變量a*/
while(a>2)/*設(shè)定循環(huán)條件,達(dá)到輸入錯(cuò)誤選項(xiàng)即可循環(huán)執(zhí)行確認(rèn)選擇功能指令*/
{
           printf("\n\n   O(∩_∩)O哈哈~,不能亂選哦,請(qǐng)?jiān)俅握J(rèn)真選擇所需要的功能:\n\n 【1】:加密(目前只支持9位任意數(shù)字,原因至今不明  (#‵′)凸\n\n 【2】:解密(只對(duì)本程序加密的密文有效)\n\n 【0】:退出\n\n  ");
   scanf("%d",&a);/*讀取用戶(hù)所輸入的選項(xiàng)并賦值給變量a*/
           }
switch(a)/*判斷語(yǔ)句,在c++稱(chēng)為開(kāi)關(guān)語(yǔ)句*/
{
case 1:/*若a等于1則運(yùn)行下面代碼*/
jiamiyizhuce();/*調(diào)用jiamiyizhuce函數(shù)*/
break;/*跳出條件語(yǔ)句避免“失敗經(jīng)過(guò)”*/
case 2:/*若a等于2則運(yùn)行下面代碼*/
jiemiyizhuce();/*調(diào)用jiemiyizhuce函數(shù)*/
break;/*跳出條件語(yǔ)句避免“失敗經(jīng)過(guò)”*/
case 0:/*若a等于0則運(yùn)行下面代碼*/
exit(0);/*退出程序*/
break;/*跳出條件語(yǔ)句避免“失敗經(jīng)過(guò)”*/
}
}
==========================================================================

回復(fù)

使用道具 舉報(bào)

5#
ID:71922 發(fā)表于 2015-1-11 01:33 | 只看該作者
本帖最后由 liuyuxi 于 2015-1-11 01:55 編輯

C語(yǔ)言作品(三次改進(jìn)版)加入U(xiǎn)盤(pán)鎖定計(jì)算機(jī)功能:

   ↖(^ω^)↗哈哈,一個(gè)月嘞,在惠州實(shí)踐了\n\t22天,╮(╯▽╰)╭~~當(dāng)普工簡(jiǎn)直是墮落,本來(lái)滿滿的自信和積極的上進(jìn)心,在那不過(guò)幾天,就差點(diǎn)全被侵蝕掉了..真恐怖!還好那些管理員蠻不錯(cuò),就是有些員工超猥瑣的!也有些員工很黃很暴力⊙﹏⊙b汗..更離譜的是居然調(diào)戲女學(xué)生..吖的,超想買(mǎi)塊豆腐砸死他們!! (#‵′)靠~..
   笨笨豬,謝謝你!謝謝你在我最失落時(shí)給我動(dòng)力,給我信心!讓我沒(méi)有被他們所影響~~讓我重拾自信~~讓我的C再次突破!我們是最棒的↖(^ω^)↗!呵呵~本次靈感來(lái)自軟件爆破原理,利用此原理可以改進(jìn)重啟程序后需要再次輸入序列號(hào)的缺陷.....并增加了一個(gè)比較實(shí)用的功能,用U盤(pán)給自己的電腦加鎖...
原理:每次開(kāi)機(jī)都會(huì)檢測(cè)所指定的磁盤(pán)里的文件名(所以要設(shè)定開(kāi)機(jī)啟動(dòng)項(xiàng)),如果有則為合法用戶(hù),可正常使用計(jì)算機(jī)。沒(méi)有則視為非法用戶(hù),開(kāi)機(jī)后由你指定的時(shí)間(秒\t)關(guān)機(jī)~
所指定的文件名可以自定,程序會(huì)在該可移動(dòng)磁盤(pán)中創(chuàng)建一個(gè)由你指定的文件名的文件...如果U盤(pán)存在該文件則以該文件為開(kāi)機(jī)密鑰~~~
  注意,此程序只檢測(cè)文件名,并不檢測(cè)里面的內(nèi)容..如果您輸入的為te12.txt 那么只要您指定的磁盤(pán)根目錄有文件是此文件名即可當(dāng)成為開(kāi)機(jī)密鑰,(如果沒(méi)有則程序自動(dòng)創(chuàng)建該文件)這意味著磁盤(pán)里的每一個(gè)文件(任何格式都可以)都可當(dāng)成開(kāi)機(jī)密鑰,增強(qiáng)隱蔽性,所以你可以在tr12.txt里面加上一些內(nèi)容加以掩飾~~~
如果萬(wàn)一U盤(pán)被損壞,可以在其他U盤(pán)新建一個(gè)由你在程序設(shè)定的文件名命名的文件即可~~~
程序下載地址:加鎖文件  點(diǎn)擊即可下載
圖片:



源代碼:
  1. #include<stdio.h>/*加載包含基本輸入輸出函數(shù)頭文件*/
  2. #include<stdlib.h>/*加載標(biāo)準(zhǔn)函數(shù)庫(kù)頭文件*/
  3. #include<string.h>
  4. #include<windows.h>

  5. int i=3,a=0,d=0;/*聲明全局變量*/
  6. /*原型函數(shù)聲明*/
  7. int xieru();
  8. int yanzhen();
  9. int zhu();
  10. int tishi();
  11. int yizhuce();
  12. int jiamiweizhuce();
  13. int jiamiyizhuce();
  14. int jiemiweizhuce();
  15. int jiemiyizhuce();
  16. int u();
  17. int autoo();
  18. int dell();

  19. int main()/*聲明主函數(shù),每個(gè)C程序必須具備的*/
  20. {
  21.     system("COLOR 0a");
  22.     system("title 歡迎使用由【笨笨♂豬】設(shè)計(jì)的程序~~");
  23. printf("\n\t                    靈感\(zhòng)n\n\t   ↖(^ω^)↗哈哈,一個(gè)月嘞,在惠州實(shí)踐了\n\t22天,╮(╯▽╰)╭~~當(dāng)普工簡(jiǎn)直是墮落,本\n\t來(lái)滿滿的自信和積極的上進(jìn)心,在那不過(guò)幾天,\n\t就差點(diǎn)全被侵蝕掉了..真恐怖!還好那些管理\n\t員蠻不錯(cuò),就是有些員工超猥瑣的!也有些員\n\t工很黃很暴力⊙﹏⊙b汗..更離譜的是居然調(diào)\n\t戲女學(xué)生..吖的,超想買(mǎi)塊豆腐砸死他們!! \n\t(#‵′)靠~..\n\t  笨笨豬,謝謝你!謝謝你在我最失落時(shí)給我\n\t動(dòng)力,給我信心!讓我的C再次突破!我們是最\n\t棒的↖(^ω^)↗!呵呵~本次靈感來(lái)自軟件爆破\n\t原理,利用此原理可以改進(jìn)重啟程序后需要再\n\t次輸入序列號(hào)的缺陷。還有個(gè)缺陷是只能加解\n\t密9位數(shù)字,我覺(jué)得應(yīng)該是產(chǎn)生溢出了吧,郁悶~~\n\t這次加上了比較實(shí)用的功能=》用U盤(pán)給電腦加鎖..\n\n\n\n");
  24. system("pause");/*程序掛起*/
  25. system("cls");
  26. yanzhen();
  27. }
  28. /***************************************主調(diào)代碼*******************************************/
  29. int zhu()/*自定義zhu函數(shù)*/
  30.     {
  31.     int a,i=3;/*聲明整數(shù)變量a、i,并把賦值3給i*/
  32.        printf("\n********************************************************************");
  33.        printf("\n   此程序?yàn)镃語(yǔ)言編寫(xiě),編譯器為:DEV-C++ 4.9.9.2 多國(guó)語(yǔ)言版");
  34.    printf("\n\n   愿結(jié)交對(duì)C語(yǔ)言深感興趣并研究過(guò)C語(yǔ)言的朋友\n   若有任何建議或愿共同探討請(qǐng)聯(lián)系QQ:0000000000\n   加密方面,采用垃圾算法,純屬做練習(xí),各位不必當(dāng)真。\n");
  35.   
  36.    printf("\n********************************************************************\n");
  37.   
  38.    printf("\n作品名稱(chēng):加鎖程序(原:數(shù)字密碼加密程序三次改進(jìn)版)\n\n作品目的:增加對(duì)條件指令、循環(huán)指令的了解并熟悉自定義函數(shù)、調(diào)用函數(shù)的方法、文件            處理指令,以及DOS命令\n\n作品功能:a:實(shí)現(xiàn)注冊(cè)驗(yàn)證及對(duì)數(shù)字進(jìn)行加密、解密功能\n          b:了解加入開(kāi)機(jī)啟動(dòng)項(xiàng)的方法和利用文件處理知識(shí)..實(shí)現(xiàn)移動(dòng)設(shè)備對(duì)電腦進(jìn)行加          鎖功能\n\n作品改進(jìn):利用軟件爆破原理改進(jìn)了程序輸入正確序列號(hào)重啟后仍需再次輸入序列號(hào)的缺陷\n作品缺陷:程序判斷用戶(hù)的選擇只能用數(shù)字否則出錯(cuò)(嘗試用過(guò)char類(lèi)型),只能加密\n          9位數(shù)字否則不能正確解密 以上原因尚不明確!\n");
  39.       printf("\n********************************************************************\n");
  40.       system("pause");
  41.       system("cls");
  42.    
  43.    printf("\n\n   O(∩_∩)O哈哈~,請(qǐng)選擇所需要的功能:\n\n 【1】:加密(目前只支持9位任意數(shù)字)\n\n 【2】:解密(只對(duì)本程序加密的密文有效)\n\n 【3】:用可移動(dòng)磁盤(pán)(如U盤(pán))加鎖計(jì)算機(jī)(需注冊(cè)用戶(hù))\n\n 【4】:注冊(cè)\n\n 【0】:退出\n\n  ");
  44.    scanf("%d",&a);/*讀取用戶(hù)所輸入的選項(xiàng)并賦值給變量a*/

  45. while(a>4)/*設(shè)定循環(huán)條件,達(dá)到輸入錯(cuò)誤選項(xiàng)即可循環(huán)執(zhí)行確認(rèn)選擇功能指令*/
  46. {
  47.            printf("\n\n   O(∩_∩)O哈哈~,不能亂選哦,請(qǐng)?jiān)俅握J(rèn)真選擇所需要的功能:\n\n 【1】:加密(目前只支持9位任意數(shù)字)\n\n 【2】:解密(只對(duì)本程序加密的密文有效)\n\n 【3】:用可移動(dòng)磁盤(pán)(如U盤(pán))加鎖計(jì)算機(jī)(需注冊(cè)用戶(hù))\n\n 【4】:注冊(cè)\n\n  【0】:退出\n\n  ");
  48.    scanf("%d",&a);/*讀取用戶(hù)所輸入的選項(xiàng)并賦值給變量a*/
  49.            }
  50. switch(a)/*判斷語(yǔ)句,在c++稱(chēng)為開(kāi)關(guān)語(yǔ)句*/
  51. {
  52. case 1:/*若a等于1則運(yùn)行下面代碼*/
  53.    printf("\n   (*^__^*) 歡迎使用本加密程序【注:試用版只能使用三次】\n");/*顯示說(shuō)明*/
  54.    printf("請(qǐng)輸入序列號(hào):\n\n  ");/*顯示說(shuō)明*/
  55.    scanf("%d",&a);/*讀取用戶(hù)所輸入的序列號(hào)并賦值給變量a*/
  56.   if(a!=0000000000)/*若用戶(hù)所輸入的序列號(hào)不等于0000000000則執(zhí)行下面的指令,否則跳過(guò)下面的指令*/

  57. jiamiweizhuce();/*調(diào)用jiamiweizhuce函數(shù)*/

  58.   else/*若等于0000000000則運(yùn)行下面指令*/
  59. {
  60. xieru();
  61.   jiamiyizhuce();/*調(diào)用jiamiyizhuce函數(shù)*/
  62. }
  63. break;/*跳出判斷語(yǔ)句避免“失敗經(jīng)過(guò)”*/
  64. case 2:/*如果a等于2則運(yùn)行下面代碼*/
  65.    printf("\n   (*^__^*) 歡迎使用本解密程序【注:試用版只能使用三次】\n");/*顯示說(shuō)明*/
  66.    printf("請(qǐng)輸入序列號(hào):\n\n  ");/*顯示說(shuō)明*/
  67.    scanf("%d",&a);/*讀取用戶(hù)所輸入的序列號(hào)并賦值給變量a*/
  68.   if(a!=0000000000)/*若用戶(hù)所輸入的序列號(hào)不等于0000000000則執(zhí)行下面的指令,否則跳過(guò)下面的指令*/
  69.   jiemiweizhuce();/*調(diào)用jiemiweizhuce代碼*/
  70.   else/*若等于0000000000則運(yùn)行下面指令*/
  71. {
  72. xieru();
  73. jiemiyizhuce();/*調(diào)用jiemiyizhuce函數(shù)*/
  74. }
  75. break;/*跳出判斷語(yǔ)句避免“失敗經(jīng)過(guò)”*/
  76. case 3:
  77.      printf("\n對(duì)不起!您是未注冊(cè)用戶(hù)...\n");
  78.      system("pause");
  79.      zhu();
  80. case 4:
  81.      for(;;)
  82.      {
  83.      printf("請(qǐng)輸入序列號(hào):");
  84.      scanf("%d",&i);
  85.      if(i!=0000000000)
  86.      {
  87.      printf("\n暈~~請(qǐng)?jiān)俚轿铱臻g看清源代碼~~\n");
  88.      continue;
  89.      }
  90.      else{
  91.      xieru();
  92.      printf("\a\aO(∩_∩)O~~注冊(cè)成功咯!哈~~~\n");
  93.      system("pause");
  94.      yanzhen();
  95.      }
  96.      }
  97.      
  98. case 0:/*若a等于0則運(yùn)行下面代碼*/
  99. exit(0);/*退出程序*/
  100. break;/*跳出判斷語(yǔ)句避免“失敗經(jīng)過(guò)”*/
  101. }
  102. }

  103. int tishi()/*自定義tishi函數(shù)*/
  104. {
  105.     int q;/*聲明變量*/
  106.     printf("\n\a\a\a   ╮(╯▽╰)╭對(duì)不起,您使用的次數(shù)已達(dá)到試用版的上限!\n\n"); /*警告用戶(hù)*/
  107. printf("\n\n\nO(∩_∩)O哈哈~,告訴你一個(gè)秘密哈,若想再次使用可以再次運(yùn)行本程序,照樣\n還可以使用三次。不過(guò),如果你這樣做的話,也只能說(shuō)明你笨╮(╯▽╰)╭\n\n\n");/*幽默一下哈↖(^ω^)↗*/
  108. printf("\n返回主菜單請(qǐng)輸入數(shù)字【3】,退出請(qǐng)輸入任意數(shù)字\n\n  ");/*提示*/
  109. scanf("%d",&q);/*讀取用戶(hù)所輸入數(shù)值并存入變量q*/
  110. if(q==3)/*若變量d等于3則運(yùn)行以下代碼,否則省略本段代碼*/
  111. zhu();
  112. else/*若不等于則運(yùn)行下面代碼即退出,達(dá)到按任意數(shù)字鍵退出的目的*/
  113. exit(0);/*退出程序*/
  114. }
  115. int yizhuce()/*自定義yizhuce函數(shù)*//*此函數(shù)已去除驗(yàn)證序列號(hào)的功能*/
  116.     {
  117.     int a;/*聲明整數(shù)變量a、i,并把賦值3給i*/
  118.       printf("\n********************************************************************");
  119.        printf("\n   此程序?yàn)镃語(yǔ)言編寫(xiě),編譯器為:DEV-C++ 4.9.9.2 多國(guó)語(yǔ)言版");
  120.    printf("\n\n   愿結(jié)交對(duì)C語(yǔ)言深感興趣并研究過(guò)C語(yǔ)言的朋友\n   若有任何建議或愿共同探討請(qǐng)聯(lián)系QQ:0000000000\n   加密方面,采用垃圾算法,純屬做練習(xí),各位不必當(dāng)真。\n");
  121.   
  122.    printf("\n********************************************************************\n");
  123.   
  124.    printf("\n作品名稱(chēng):加鎖程序(原:數(shù)字密碼加密程序三次改進(jìn)版)\n\n作品目的:增加對(duì)條件指令、循環(huán)指令的了解并熟悉自定義函數(shù)、調(diào)用函數(shù)的方法、文件            處理指令,以及DOS命令\n\n作品功能:a:實(shí)現(xiàn)注冊(cè)驗(yàn)證及對(duì)數(shù)字進(jìn)行加密、解密功能\n          b:了解加入開(kāi)機(jī)啟動(dòng)項(xiàng)的方法和利用文件處理知識(shí)..實(shí)現(xiàn)移動(dòng)設(shè)備對(duì)電腦進(jìn)行加          鎖功能\n\n作品改進(jìn):利用軟件爆破原理改進(jìn)了程序輸入正確序列號(hào)重啟后仍需再次輸入序列號(hào)的缺陷\n作品缺陷:程序判斷用戶(hù)的選擇只能用數(shù)字否則出錯(cuò)(嘗試用過(guò)char類(lèi)型),只能加密\n          9位數(shù)字否則不能正確解密(此BUG與算法無(wú)關(guān)),無(wú)論注冊(cè)碼是否正確重啟\n          程序后需再次輸入序列號(hào).以上原因尚不明確!\n");
  125.       printf("\n********************************************************************\n");
  126.       system("pause");
  127.       system("cls");
  128.    
  129.    printf("\n\n   O(∩_∩)O哈哈~,請(qǐng)選擇所需要的功能:\n\n 【1】:加密(目前只支持9位任意數(shù)字)\n\n 【2】:解密(只對(duì)本程序加密的密文有效)\n\n 【3】用可移動(dòng)磁盤(pán)(如U盤(pán))加鎖計(jì)算機(jī)\n\n 【0】:退出\n\n  ");
  130.    scanf("%d",&a);/*讀取用戶(hù)所輸入的選項(xiàng)并賦值給變量a*/

  131. while(a>3)/*設(shè)定循環(huán)條件,達(dá)到輸入錯(cuò)誤選項(xiàng)即可循環(huán)執(zhí)行確認(rèn)選擇功能指令*/
  132. {
  133.            printf("\n\n   O(∩_∩)O哈哈~,不能亂選哦,請(qǐng)?jiān)俅握J(rèn)真選擇所需要的功能:\n\n 【 【1】:加密(目前只支持9位任意數(shù)字)\n\n 【2】:解密(只對(duì)本程序加密的密文有效)\n\n 【3】用可移動(dòng)磁盤(pán)(如U盤(pán))加鎖計(jì)算機(jī)\n\n 【0】:退出\n\n  ");
  134.    scanf("%d",&a);/*讀取用戶(hù)所輸入的選項(xiàng)并賦值給變量a*/
  135.            }
  136. switch(a)/*判斷語(yǔ)句,在c++稱(chēng)為開(kāi)關(guān)語(yǔ)句*/
  137. {
  138. case 1:/*若a等于1則運(yùn)行下面代碼*/
  139. jiamiyizhuce();/*調(diào)用jiamiyizhuce函數(shù)*/
  140. break;/*跳出條件語(yǔ)句避免“失敗經(jīng)過(guò)”*/
  141. case 2:/*若a等于2則運(yùn)行下面代碼*/
  142. jiemiyizhuce();/*調(diào)用jiemiyizhuce函數(shù)*/
  143. break;/*跳出條件語(yǔ)句避免“失敗經(jīng)過(guò)”*/
  144. case 3:
  145.      {
  146.      u();
  147.      zhu();
  148.      }
  149. case 0:/*若a等于0則運(yùn)行下面代碼*/
  150. exit(0);/*退出程序*/
  151. break;/*跳出條件語(yǔ)句避免“失敗經(jīng)過(guò)”*/
  152. }
  153. }
  154. /*************************主調(diào)用代碼**************************/

  155. /*******************************功能實(shí)現(xiàn)代碼**********************************/

  156. /******************************加密功能代碼************************************************/
  157. int jiamiweizhuce()/*聲明自定義jiamiweizhuce函數(shù)(未注冊(cè)限制使用)同時(shí)聲明變量*/
  158. {
  159. /*以下為未注冊(cè)限制代碼↓↓*/
  160.     while(i!=0)/*循環(huán)語(yǔ)句,設(shè)定條件為3次,由聲明變量時(shí)確定,達(dá)到三次后跳出循環(huán)停止運(yùn)行算法*/
  161.    {
  162.     printf("\n請(qǐng)輸入一組需加密的數(shù)字【未注冊(cè)】\n\n  ");/*顯示說(shuō)明*/
  163.     scanf("%d",&a);/*讀取用戶(hù)所輸入的數(shù)值并賦值給變量a*/
  164.     a=a+100000;/*進(jìn)行加密算法↓↓*/
  165.     a=a+100009;
  166.     a=a+100052;
  167.     a=a+100878;
  168.     a=a+108546;
  169.     a=a+113545;
  170.     a=a+314123;/*進(jìn)行加密算法↑↑*/
  171.     i--;/*運(yùn)行算法一次則i減1,達(dá)到三次后滿足循環(huán)條件即運(yùn)行3次算法,則i=3-3=0*/
  172.     printf("\n\n~\a\(≧▽≦)/~恭喜,已完成加密!密文為:【%d】(還有【%d】次使用權(quán))\n\n",a,i);/*算法完成輸出密文并提醒使用次數(shù)*/
  173.     printf("\n返回主菜單請(qǐng)輸入數(shù)字【3】,繼續(xù)加密請(qǐng)輸入任意數(shù)字\n\n  ");/*提示*/
  174.     scanf("%d",&d);/*讀取用戶(hù)所輸入的數(shù)值并存入變量d*/
  175.     if(d==3)/*若變量d等于3則強(qiáng)制跳出循環(huán)*/
  176.     break;/*強(qiáng)制跳出循環(huán)*/
  177. }
  178. if(d==3)/*若變量d等于3則運(yùn)行以下代碼,否則省略本段代碼*/
  179. zhu();
  180. tishi();
  181. }
  182. int jiamiyizhuce()/*聲明自定義jiamiyizhuce函數(shù)(已注冊(cè)無(wú)限制使用)*/
  183. {
  184.      /*以下為已注冊(cè)無(wú)限制代碼↓↓*/
  185.     for(;;)/*循環(huán)語(yǔ)句,不設(shè)定條件,可無(wú)限次運(yùn)行算法指令*/
  186.    {
  187.     printf("\n請(qǐng)輸入一組需加密的數(shù)字【已注冊(cè),可無(wú)限使用】\n\n  ");/*顯示說(shuō)明*/
  188.     scanf("%d",&a);/*讀取用戶(hù)所輸入的數(shù)值并賦值給變量a*/
  189.     a=a+100000;/*進(jìn)行加密算法↓↓*/
  190.     a=a+100009;
  191.     a=a+100052;
  192.     a=a+100878;
  193.     a=a+108546;
  194.     a=a+113545;
  195.     a=a+314123;/*進(jìn)行加密算法↑↑*/
  196.     printf("\n\n\a~\(≧▽≦)/~恭喜,已完成加密!密文為:【%d】\n\n",a);/*算法完成,輸出密文*/
  197.     printf("\n返回主菜單請(qǐng)輸入數(shù)字【3】,繼續(xù)加密請(qǐng)輸入任意數(shù)字\n\n  ");/*提示*/
  198.     scanf("%d",&d);/*讀取用戶(hù)所輸入的數(shù)值并存入變量d*/
  199.     if(d==3)/*若變量d等于3則強(qiáng)制跳出循環(huán)*/
  200.     break; /*強(qiáng)制跳出循環(huán)*/
  201. }
  202. if(d==3)/*若變量d等于3則運(yùn)行以下代碼,否則省略本段代碼*/
  203. yizhuce();
  204. }
  205. /******************************加密功能代碼************************************************/

  206. /******************************解密功能代碼************************************************/
  207.     int jiemiweizhuce()/*聲明解密未注冊(cè)(限制使用)函數(shù)*/
  208. {
  209.       /*以下為未注冊(cè)限制代碼↓↓*/
  210.     while(i!=0)/*循環(huán)語(yǔ)句,設(shè)定條件為3次,達(dá)到三次后跳出循環(huán)語(yǔ)句即i等于3*/
  211.    {
  212.     printf("\n請(qǐng)輸入一組需解密的數(shù)字【未注冊(cè)】\n\n  ");/*顯示說(shuō)明*/
  213.     scanf("%d",&a);/*讀取用戶(hù)所輸入的數(shù)值并賦值給變量a*/
  214.     a=a-100000;/*逆行執(zhí)行加密算法↓↓*/
  215.     a=a-100009;
  216.     a=a-100052;
  217.     a=a-100878;
  218.     a=a-108546;
  219.     a=a-113545;
  220.     a=a-314123;/*逆行執(zhí)行加密算法↑↑*/
  221.     i--;/*運(yùn)行算法一次則i減一,達(dá)到三次后滿足循環(huán)條件*/
  222.     printf("\n\a   ~\(≧▽≦)/~恭喜,已完成解密!密碼為:【%d】(還有【%d】次使用權(quán))\n\n",a,i);
  223.        printf("\n返回主菜單請(qǐng)輸入數(shù)字【3】,繼續(xù)解密請(qǐng)輸入任意數(shù)字\n\n  ");/*提示*/
  224.     scanf("%d",&d);/*讀取用戶(hù)所輸入的數(shù)值并存入變量d*/
  225.     if(d==3)/*若變量d等于3則強(qiáng)制跳出循環(huán)*/
  226.     break;/*強(qiáng)制跳出循環(huán)*/
  227. }
  228. if(d==3)/*若變量d等于3則運(yùn)行以下代碼,否則省略本段代碼*/
  229. zhu();
  230. tishi();
  231. }
  232.     int jiemiyizhuce()/*聲明解密已注冊(cè)(解除限制)函數(shù)*/
  233.     {
  234.              /*以下為已注冊(cè)無(wú)限制代碼↓↓*/
  235.     for(;;)/*循環(huán)語(yǔ)句,不設(shè)定條件*/
  236.    {
  237.     printf("\n請(qǐng)輸入一組需解密的數(shù)字【已注冊(cè),可無(wú)限使用】\n\n  ");/*顯示說(shuō)明*/
  238.     scanf("%d",&a);/*讀取用戶(hù)所輸入的數(shù)值并賦值給變量a*/
  239.     a=a-100000;/*逆行執(zhí)行加密算法↓↓*/
  240.     a=a-100009;
  241.     a=a-100052;
  242.     a=a-100878;
  243.     a=a-108546;
  244.     a=a-113545;
  245.     a=a-314123;/*逆行執(zhí)行加密算法↑↑*/
  246.     printf("\n\n\a   ~\(≧▽≦)/~恭喜,已完成解密!密碼為:【%d】\n\n",a);/*算法完成輸出真實(shí)密碼*/
  247.     printf("\n返回主菜單請(qǐng)輸入數(shù)字【3】,繼續(xù)解密請(qǐng)輸入任意數(shù)字\n\n  ");/*提示*/
  248.     scanf("%d",&d);/*讀取用戶(hù)所輸入的數(shù)值并存入變量d*/
  249.     if(d==3)/*若變量d等于3則強(qiáng)制跳出循環(huán)*/
  250.     break; /*強(qiáng)制跳出循環(huán)*/
  251. }
  252. if(d==3)/*若變量d等于3則運(yùn)行以下代碼,否則省略本段代碼*/
  253. yizhuce();
  254.     }
  255. /******************************解密功能代碼************************************************/

  256. /******************************U盤(pán)加鎖代碼************************************************/
  257. int u()
  258. {
  259.     system("cls");
  260.     FILE *p;
  261.     char pan[2]={0},password[50]={0},pd[]={"if not exist "},fu[]={":\\"},exi[]={" shutdown.exe -s -t "},ok[50],k[100],j[60];
  262.     printf("\n\n\t【1】為計(jì)算機(jī)加鎖\n\n\t【2】清除加鎖功能\n\n\t【3】返回\n\n\t");
  263.     scanf("%d",&i);
  264.     if(i==1)
  265.     {
  266. system("cls");
  267.     printf("\n\n\t原理:每次開(kāi)機(jī)都會(huì)檢測(cè)所指定的磁盤(pán)里的文件名(所以要設(shè)定開(kāi)機(jī)啟動(dòng)項(xiàng)),如果\n\t有則為合法用戶(hù),可正常使用計(jì)算機(jī)。沒(méi)有則視為\"小偷\"開(kāi)機(jī)后由您指定的時(shí)間(秒\t)關(guān)機(jī)~");
  268.     printf("所指定的文件名可以自定,程序會(huì)在該可移動(dòng)磁盤(pán)中創(chuàng)建一個(gè)由你指定的文         件名的文件\n");
  269.     printf("\n\t注意,此程序檢測(cè)文件名,并不檢測(cè)里面的內(nèi)容..如果您輸入的為te12.txt 那么         只要您指定的磁盤(pán)根目錄有文件是此文件名即可當(dāng)成為開(kāi)機(jī)密鑰\n\t(這意味著磁盤(pán)里的每一個(gè)文件都可當(dāng)成開(kāi)機(jī)密鑰,增強(qiáng)隱蔽性),所以你可以在tr12         .txt里面加上一些內(nèi)容加以掩飾\n\n");

  270.     printf("\n\t請(qǐng)確定是否已插入可移動(dòng)磁盤(pán)~~~~\n");
  271.     system("pause");
  272.     text:
  273.     printf("\n\n請(qǐng)輸入可移動(dòng)磁盤(pán)盤(pán)符(輸入字母即可,如輸入g):");
  274.     scanf("%s",pan);
  275.     printf("\n\n請(qǐng)?jiān)O(shè)定程序需檢測(cè)認(rèn)證可移動(dòng)磁盤(pán)根目錄上的文件名(也可以自定文件名):");
  276.     scanf("%s",password);
  277. /****************檢測(cè)是否有該文件存在*******************/
  278.     strcpy(ok,pan);
  279.     strcat(ok,fu);
  280.     strcat(ok,password);
  281.    if((p=fopen(ok,"r"))==NULL)
  282. {
  283. printf("\n\n╮(╯_╰)╭檢測(cè)可移動(dòng)磁盤(pán)無(wú)您指定的文件名,程序?qū)⒆詣?dòng)創(chuàng)建此文件\n");
  284. p=fopen(ok,"w");
  285. if((p=fopen(ok,"r"))==NULL)
  286. {
  287. printf("\n\n╮(╯_╰)╭無(wú)法寫(xiě)入..請(qǐng)確定可移動(dòng)磁盤(pán)是否被設(shè)為寫(xiě)保護(hù)或接口接觸不良..\n\n");
  288. printf("\n\n重新配置請(qǐng)輸入1,返回輸入0,任意輸入則退出");
  289. scanf("%d",&i);
  290. if(i==1)
  291. goto text;
  292. else if(i==0)
  293. return 0;
  294. else
  295. exit(0);
  296. }
  297. else
  298. printf("\n\n\\(^o^)/~文件創(chuàng)建成功...");

  299. }
  300. /****************檢測(cè)是否有該文件存在*******************/
  301.     printf("\n\n請(qǐng)?jiān)O(shè)定無(wú)此密碼文件時(shí)登陸系統(tǒng)后關(guān)機(jī)時(shí)間(秒)(建議輸入0,即開(kāi)機(jī)后立即關(guān)機(jī)):");
  302.     scanf("%s",j);
  303.     strcpy(k,pd);
  304.     strcat(k,pan);
  305.     strcat(k,fu);
  306.     strcat(k,password);
  307.     strcat(k,exi);
  308.     strcat(k,j);
  309.    

  310. if((p=fopen("C:\\WINDOWS\\love.bat","w"))==NULL)
  311. {
  312. printf("\n\n\a對(duì)不起,可能因?yàn)橄到y(tǒng)盤(pán)被寫(xiě)保護(hù),無(wú)法寫(xiě)入配置文件....\n");
  313. system("pause");
  314. }
  315. else
  316. {
  317. fprintf(p,k);
  318. fclose(p);
  319. printf("\n\n即將設(shè)為開(kāi)機(jī)啟動(dòng)項(xiàng)..安全防護(hù)軟件可能會(huì)提示請(qǐng)按同意..\n");
  320. system("pause");
  321. autoo();
  322. printf("\n\n已設(shè)置完成..重啟后立即生效~\n");
  323. }

  324. system("pause");
  325. system("cls");
  326. return 0;
  327. }
  328. else if(i==2)
  329. dell();
  330. else if(i==3)
  331. yanzhen();
  332. else
  333. exit(0);
  334. }


  335.      

  336. /******************************U盤(pán)加鎖代碼************************************************/
  337.    
  338. /*******************************功能實(shí)現(xiàn)代碼**********************************/

  339. /***************************注冊(cè)信息保存代碼************************/
  340. int xieru()
  341. {
  342. FILE *fptr;
  343. char name[20]={"\\(^o^)/~,成功咯~"};
  344. if((fptr=fopen("C:\\WINDOWS\\system32\\愛(ài)夢(mèng)想.love","w"))==NULL)
  345. {
  346. printf("\n\t暈啊~注冊(cè)信息保存失敗..是不是裝了什么磁盤(pán)保護(hù)軟件呢?或者中病毒?\n");
  347. system("pause");
  348. }
  349. else
  350. {
  351. fprintf(fptr,name);
  352. fclose(fptr);
  353. }
  354. return 0;
  355. }
  356. /***************************注冊(cè)信息保存代碼************************/

  357. /***************************注冊(cè)信息讀取代碼************************/
  358. int yanzhen()
  359. {
  360.     FILE *fptr;
  361.     int i;
  362.     char a[]={"\\(^o^)/~,成功咯~"},d[20];
  363.     if((fptr=fopen("C:\\WINDOWS\\system32\\愛(ài)夢(mèng)想.love","r"))==NULL)
  364.     zhu();
  365.     else
  366.     {
  367.         for(i=0;!feof(fptr);i++)
  368.      {
  369.           d[i]=fgetc(fptr);

  370. }
  371. fclose(fptr);
  372. if(a[6]==d[6])
  373. yizhuce();
  374. else
  375. zhu();
  376. }     
  377. }
  378. /***************************注冊(cè)信息讀取代碼************************/

  379. /***************************設(shè)置開(kāi)機(jī)啟動(dòng)項(xiàng)代碼***********************/
  380. /*設(shè)置開(kāi)機(jī)啟動(dòng)*/
  381. int autoo()
  382. {
  383. char regname[]="Software\\Microsoft\\Windows\\CurrentVersion\\Run";
  384. HKEY hkResult;
  385. int ret=RegOpenKey(HKEY_LOCAL_MACHINE,regname,&hkResult);
  386. ret=RegSetValueEx(hkResult,"love.bat"/* 注冊(cè)表鍵名*/,0,REG_EXPAND_SZ,(unsigned char *)"%systemroot%\\love.bat",25);
  387. if(ret==0){
  388. printf("\n\n成功加入啟動(dòng)項(xiàng)\n");
  389. RegCloseKey(hkResult);
  390. }
  391. else {
  392. printf("\n\n\a對(duì)不起,可能因?yàn)榘踩雷o(hù)軟件阻攔,無(wú)法設(shè)為開(kāi)機(jī)自啟動(dòng)....\n");
  393. system("del %systemroot%\\love.bat");

  394. printf("\n\n\t重新配置請(qǐng)輸入1,返回輸入0,任意輸入則退出");
  395. scanf("%d",&i);
  396. if(i==1)
  397. u();
  398. else if(i==0)
  399. return 0;
  400. else
  401. exit(0);
  402. }
  403. }
  404. /*清除開(kāi)機(jī)啟動(dòng)*/
  405. int dell()
  406. {
  407. char regname[]="Software\\Microsoft\\Windows\\CurrentVersion\\Run";
  408. HKEY hkResult;
  409. int ret=RegOpenKey(HKEY_LOCAL_MACHINE,regname,&hkResult);
  410. ret=RegSetValueEx(hkResult,"love.bat"/* 注冊(cè)表鍵名*/,0,REG_EXPAND_SZ,(unsigned char *)"%systemroot%\\love.bat",25);
  411. if(ret==0){
  412.            
  413. printf("\n\n\t成功清除啟動(dòng)項(xiàng)\n");
  414. RegCloseKey(hkResult);
  415. system("del %systemroot%\\love.bat");
  416. printf("\n\n\t成功刪除配置文件");
  417. printf("\n\n\t成功清除開(kāi)機(jī)加鎖功能~~~");
  418. printf("\n\n\t重新配置請(qǐng)輸入1,返回輸入0,任意輸入則退出");
  419. scanf("%d",&i);
  420. if(i==1)
  421. u();
  422. else if(i==0)
  423. zhu();
  424. else
  425. exit(0);
  426. }
  427. else {
  428. printf("\n\n\a對(duì)不起,可能因?yàn)榘踩雷o(hù)軟件阻攔,無(wú)法清除開(kāi)機(jī)自啟動(dòng)....");

  429. printf("\n\n重新配置請(qǐng)輸入1,返回輸入0,任意輸入則退出");
  430. scanf("%d",&i);
  431. if(i==1)
  432. u();
  433. else if(i==0)
  434. zhu();
  435. else
  436. exit(0);
  437. }
  438. }

  439. ======================================================================
復(fù)制代碼




回復(fù)

使用道具 舉報(bào)

6#
ID:98252 發(fā)表于 2015-12-4 00:40 | 只看該作者
只能加密9位數(shù)是因?yàn)槟鉺canf輸入的類(lèi)型是整型,整型最多能表示三億多,也就九位數(shù)。我是剛開(kāi)始學(xué)c的新人,只能幫你到這了。。。。哈哈。
回復(fù)

使用道具 舉報(bào)

7#
ID:288293 發(fā)表于 2018-3-6 16:54 | 只看該作者
謝謝樓主,表情包真有愛(ài),真棒
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲综合无码一区二区 | 中文字幕国产 | 国产日韩一区二区 | 日韩精品视频在线播放 | 国产成人精品一区二 | 欧美福利专区 | 午夜激情一区 | 91精品久久久久久久久 | 人人看人人射 | 精品乱码久久久久 | 日本亚洲精品成人欧美一区 | 日韩欧美中文 | 欧美日韩中文字幕在线 | 9191av| 一级aaaa毛片 | 成人精品一区二区 | 久久精品二区亚洲w码 | 天天干天天操天天射 | 国产日产精品一区二区三区四区 | 国产婷婷综合 | 亚洲国产偷 | av免费成人| 在线播放国产一区二区三区 | 午夜理伦三级理论三级在线观看 | 色网站视频 | 久久中文视频 | 天堂av在线影院 | 亚洲成av人片在线观看无码 | 成人在线小视频 | 日韩高清www | 亚洲深夜福利 | 成人自拍视频网站 | 毛片一级电影 | 91久久久久久 | 日韩电影免费在线观看中文字幕 | 日韩一区二区在线视频 | 777777777亚洲妇女 | 激情毛片 | 亚洲精品电影网在线观看 | 一区视频在线免费观看 | 亚洲精选一区二区 |