c語言設計簡單的加密解密程式,C語言設計一個簡單的加密解密程式

2022-02-14 01:21:04 字數 1495 閱讀 9604

1樓:匿名使用者

加密程式**:

#include

main()

if(c!=-1)

fprintf(fp2,"%c",c);

}while(c!=-1);

}解密程式**:

#include

#include

main()

if(c!=-1)

fprintf(fp2,"%c",c);

}while(c!=-1);

}else}

2樓:

c++的

// 常量

#define c1 52845

#define c2 22719

cstring encrypt(cstring s, word key) // 加密函式

s=result; // 儲存結果

result.empty(); // 清除結果

for(i=0; i>8)); // 將金鑰移位後與字元異或

key = ((byte)s.getat(i)+key)*c1+c2; // 產生下一個金鑰

}return result;}用法

cstring text=_t("192.168.18.14");//需要加密的字串

word key=1314;//key

cstring jiami=encrypt(text,key);//加密

afxmessagebox(_t("密文:")+jiami);

cstring jiemi=decrypt(jiami,key);//解密

afxmessagebox(_t("原文:")+jiemi);

c語言程式設計 簡單加密程式

3樓:

你的改動不可以,之所以你的除錯結果對,那是因為你沒有用邊界值去測試。

這個加密方法是用的迴圈碼,也就是用字母推後兩個位置,即用c代替a,用d代替b,那麼z用什麼來代替呢?那就是b。除以26的目的就是當超過26後,通過求餘數的方式折回頭部去。

(soustr[j]-'a'+2)的意思就是將26個字母編號為1~26。

4樓:匿名使用者

#include

#include

int main(void)

puts(secstr);

return 0;}

5樓:匿名使用者

26是有26個英文字母,字母往後移動兩位,如果超過最後的z,就回繞,所以有%操作。你的如果是y,z,估計就不是字母了。

6樓:大禿象

secstr[j] = (soustr[j]+2); 是錯誤的 你試一下輸入z或y或 就知道了

應該寫成secstr[j] = (soustr[j]-'a'+2)%26+'a' 這樣 輸入字母z或y是就不會出錯

對26求餘就是求字母偏移的實際值

C語言程式 資料的簡單加密和解密 對於重要的資訊,為了在傳輸或儲存時避免洩露,可以在傳輸或儲存前進行加

include using namespace std define n 100 int main cout jiemi data,a,n cout 解密後的字元 for int i 0 data i 0 i return 0 void jiami char data n char a,int n ...

C語言資料解密誰能幫我寫個下面程式的解密

include main 比如number 123,那麼a 0 3,a 1 2,a 2 1已經倒敘儲存了。for i 0 i 0 i printf d a i 倒敘輸出為加密前的數字 printf n 還有你的表述不清楚,是隻有第一位和最後一位交換還是第二位和倒數第二位都交換,如果只是交換第一位,上...

簡單的c語言程式輸出一個簡單的c語言程式輸出1IND00不知道哪裡錯

進行浮點數程式設計時,如果沒有注意,常常會出現輸出類似 1.ind,1.inf 或者 nan,inf 之類奇怪的輸出。這通常隱含了浮點數操作的異常。特殊浮點數的含義 1.inf inf 這個值表示 無窮大 infinity 的縮寫 即超出了計算機可以表示的浮點數的最大範圍 或者說超過了 double...