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...