C語言代碼和運(yùn)行結(jié)果如下:
雨山網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)從2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
輸出符合示例,加解密均正確,望采納~
附源碼鏈接:字符串加解密
void sc(char *fp, char *key, int Flen, int Klen);
這是對文件內(nèi)容進(jìn)行異或加密運(yùn)算的函數(shù)
fp 是從文件讀取的字符串內(nèi)容
key 是從密碼字符串內(nèi)容
Flen 是文件內(nèi)容字符串長度
Klen 是密碼長度
void sc(char *fp, char *key, int Flen, int Klen)
{
int i, j, k;
for (i = 0; i Flen; i += Klen) //從開始循環(huán)到文件字符串結(jié)束,步長是密碼長度
for(j = i, k = 0; k Klen; j++, k++) //從密碼字符串開始逐個(gè)字節(jié)循環(huán),步長是密碼長度
fp[j] ^= key[k]; //進(jìn)行異或加密
fp[i] = '\0'; //字符串最后添加結(jié)束符
printf("%s\n", fp); //顯示加密后字符串
}
異或加密以后再做一次就是解密
最簡單的加密思想:用rand()產(chǎn)生一個(gè)隨機(jī)數(shù),然后將文件中的每個(gè)字符依次與這個(gè)隨機(jī)數(shù)進(jìn)行異或,解密時(shí)只需要再進(jìn)行異或運(yùn)算即可。
原理 (a^b)^b = a (^為異或運(yùn)算)