C語言設(shè)計(jì)一個(gè)簡(jiǎn)單的加密解密程序如下:
企業(yè)建站必須是能夠以充分展現(xiàn)企業(yè)形象為主要目的,是企業(yè)文化與產(chǎn)品對(duì)外擴(kuò)展宣傳的重要窗口,一個(gè)合格的網(wǎng)站不僅僅能為公司帶來巨大的互聯(lián)網(wǎng)上的收集和信息發(fā)布平臺(tái),成都創(chuàng)新互聯(lián)面向各種領(lǐng)域:成都主動(dòng)防護(hù)網(wǎng)等成都網(wǎng)站設(shè)計(jì)公司、全網(wǎng)整合營(yíng)銷推廣解決方案、網(wǎng)站設(shè)計(jì)等建站排名服務(wù)。
加密程序代碼:
#includestdio.h
main()
{
char
c,filename[20];
FILE
*fp1,*fp2;
printf("請(qǐng)輸入待加密的文件名:\n");
scanf("%s",filename);
fp1=fopen(filename,"r");
fp2=fopen("miwen.txt","w");
do
{
c=fgetc(fp1);
if(c=32c=126)
{
c=c-32;
c=126-c;
}
if(c!=-1)
fprintf(fp2,"%c",c);
}
while(c!=-1);
}
解密程序代碼:
#includestdio.h
#includestring.h
main()
{
char
c,filename[20];
char
yanzhengma[20];
FILE
*fp1,*fp2;
printf("請(qǐng)輸入待解密文件名:\n");
scanf("%s",filename);
printf("請(qǐng)輸入驗(yàn)證碼:\n");
scanf("%s",yanzhengma);
if(strcmp(yanzhengma,"shan")==0)
{
fp1=fopen(filename,"r");
fp2=fopen("yuanwen.txt","w");
do
{
c=fgetc(fp1);
if(c=32c=126)
{
c=126-c;
c=32+c;
}
if(c!=-1)
fprintf(fp2,"%c",c);
}
while(c!=-1);
}
else
{
printf("驗(yàn)證碼錯(cuò)誤!請(qǐng)重新輸入:\n");
scanf("%s",filename);
}
}
C語言代碼和運(yùn)行結(jié)果如下:
輸出符合示例,加解密均正確,望采納~
附源碼鏈接:字符串加解密
#include?stdio.h
#include?stdlib.h
#include?string.h
const?char?*chlist?=?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
int?encode_string(char*?str,?unsigned?int?length,?char*?stat)?{
char?s[103];
int?i,j;
unsigned?temp;
if(length?=?0)?return?1;
if(length??100)?return?2;
str[length]?=?'\0';
strcpy(s,str);
while(strlen(s)?%?3)?strcat(s,"=");
for(i?=?0,j?=?0;?s[i];?i?+=?3,j?+=?4)?{
temp?=?s[i];
temp?=?(temp??8)?+?s[i?+?1];
temp?=?(temp??8)?+?s[i?+?2];
stat[j?+?3]?=?chlist[temp??0X3F];
temp?=?6;
stat[j?+?2]?=?chlist[temp??0X3F];
temp?=?6;
stat[j?+?1]?=?chlist[temp??0X3F];
temp?=?6;
stat[j?+?0]?=?chlist[temp??0X3F];
}
stat[j]?=?'\0';
return?0;
}
int?Index(char?ch)?{
int?i;
for(i?=?0;?chlist[i];?++i)?{
if(chlist[i]?==?ch)
return?i;
}
return?-1;
}
void?decode_string(char?*s,?char?*t)?{
unsigned?temp;
int?i,j,k,len?=?strlen(s);
if(len?%?4)?{
printf("無效數(shù)據(jù)。\n");
exit(2);
}
for(i?=?0,j?=?0;?i?=?len;?i?+=?4,j?+=?3)?{
temp?=?0;
for(k?=?0;?k??4;?++k)
temp?=?(temp??6)?+?Index(s[i?+?k]);
for(k?=?2;?k?=?0;?--k)?{
t[j?+?k]?=?temp??0XFF;
temp?=?8;
}
}
t[j?+?k]?=?'\0';
}
int?main()?{
char?s[100]?=?"1a2a3s4dff5fj6u7M8B9P0O1U2";
char?t[150],u[100];
printf("s?=?%s\n",s);
encode_string(s,strlen(s),t);
printf("t?=?%s\n",t);
decode_string(t,u);
printf("u?=?%s\n",u);
return?0;
}
名稱欄目:用c語言編寫加密函數(shù) c語言實(shí)現(xiàn)加密算法
轉(zhuǎn)載注明:http://vcdvsql.cn/article16/ddegdgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、品牌網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、響應(yīng)式網(wǎng)站、網(wǎng)站內(nèi)鏈、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)