當前位置:首頁 » 編程語言 » c語言加密文本

c語言加密文本

發布時間: 2025-02-08 03:47:50

㈠ 用c語言把字元串加密,包括字母和數字,向後偏移三位,需要運用到函數。幫忙改一下錯啊。。

#include<stdio.h>
void sec(char str[]);
void main()
{
char str[10];
int i=0;
printf("input 10 chars:\n");
for(i=0;i<10;i++)
scanf("%c",&str[i]);//<————這里輸入的時候你寫的不對!
sec(str);
for(i=0;i<10;i++)
printf("%c",str[i]);
}
void sec(char str[])
{
int i;
for(i=0;str[i]!='\0';i++)
{
char x=str[i];
if((x>='a'&&x<='z')||(x>='A'&&x<='Z')||(x>='0'&&x<='9'))
x=x+3;
str[i]=x;//<————————這里要把轉換完的x再賦給str[i]
}
}

㈡ C語言英文文本加密

#include "stdio.h"

#include <stdlib.h>

int main(int argc,char *argv[]){

FILE *fp,*fq;

int k,t;

fp=fopen("AAA12345678901.txt","w+");

if(!fp || (fq=fopen("tmp.txt","w"))==NULL){

printf("Failed to open the file and exit... ");

return 0;

}

printf("Please enter a short passage(letters+space+punctuation,'Enter' end)... ");

while((t=getchar())!=' ')//為文件輸入內容

fputc(t,fp);

printf("Please enter the encryption key(int >0)... k=");

while(scanf("%d",&k)!=1 || k<1){//輸入加密密鑰並判斷是否正確

printf("Input error, redo: ");

fflush(stdin);

}

rewind(fp);

while(t=fgetc(fp),!feof(fp))//加密

if(t>='A' && t<='Z')

fputc(((t-'A')+k)%26+'A',fq);

else if(t>='a' && t<='z')

fputc(((t-'a')+k)%26+'a',fq);

else

fputc(t,fq);

fclose(fp);//關閉原文件

fclose(fq);//關閉加密後的文件

remove("AAA12345678901.txt");//刪除原文件

rename("tmp.txt","AAA12345678901.txt");//將加密後的文件更換為原文件名

printf(" ");

if(fp=fopen("AAA12345678901.txt","r")){

while((t=fgetc(fp))!=EOF)

printf("%c",t);

printf(" Encryption success! ");

}

else

printf(" Failed to open the encrypted file... ");

fclose(fp);

return 0;

}

代碼格式和運行樣例圖片:

㈢ 關於C語言的加密

'a'的ASC碼是97
'b'的ASC碼是98
'c'的ASC碼是99
... ...
'z'的ASC碼是122

明文和密文相對應
如明文:"abc"
密文:"zyw"

當ch1 = 'a'時,ch2 = 'z'
ch1 - 97 = 97 + 25 - ch2
97 - 97 = 97 + 25 - 122 = 0

當ch1 = 'b'時,ch2 = 'y'
ch1 - 97 = 97 + 25 - ch2
98 - 97 = 97 + 25 - 121 = 1

當ch1 = 'c'時,ch2 = 'w'
ch1 - 97 = 97 + 25 - ch2
99 - 97 = 97 + 25 - 120 = 2

ch1 - 97 = 97 + 25 - ch2這實際上是明文與密文的對應關系,也就是他的演算法

你可以對明文去設定一個對應關系,就可以得到不同的密文

㈣ c語言加密 漢字問題

漢字應該是char類型的數據。你可以用強制類型轉換將其轉換為ASCII碼,加密的時候加上2,然後下次解密的時候減去2,在強制轉換為char類型的數據。代碼大概就像這樣:

int JiaMi(char s)
{
return (int)(s + 2);
}

char JieMi(int code)
{
return (char)(code - 2);
}

㈤ c語言 文件加密

c語言文件加密和解密方法如下:

1、首先打開VC++6.0;

voidDecryptFile(FILE*sfp,FILE*dfp,charpwd)
{
charch;
while((ch=fgetc(sfp))!=EOF)
{
if((ch>='a')&&(ch<='z'))
{
ch=ch^pwd;
ch=(ch-'a'+25)%26+'a';
}
if((ch>='A')&&(ch<='Z'))
{
ch=ch^pwd;
ch=(ch-'A'+25)%26+'A';
}
fputc(ch,dfp);
}
}

輸出函數,輸出文件內容
voidOutputFile(FILE*fp)
{
charch;
while((ch=fgetc(fp))!=EOF)
putchar(ch);
}
主函數,主要調用這幾個函數
int哪銀main()
{
/*用戶輸入的要加密的文件名*/
charsfilename[20];
/*用戶輸入加密後保存的文件名*/
chardfilename[20];
/*用來保存密碼字元*/
charpwd;
FILE*sfp,*dfp;

printf(": ");
/*得到要加密的文件名*/
gets(sfilename);
/*得到加密後你要的文件名*/
printf(": ");
gets(dfilename);
/*得到加密字元*/
printf("PleaseinputyourPassword: ");
//scanf("%c",&pwd);
pwd=getch();
/*屏幕以*來表示輸入的加密字元*/
printf("* ");
/*以只讀方式打開要加密的文件*/
if((sfp=fopen(sfilename,"r"))==0)
{
printf("Can'topenthefile:%s ",sfilename);
exit(0);
}
/*輸出要加密的文件*/
printf(": ");
OutputFile(sfp);
/*建立加密後的文件*/
if((dfp=fopen(dfilename,"w+"))==0)
{
printf("Can'topenorcreatethefile:%s ",dfilename);
//exit(0);
}
/*文件加密*/
fseek(sfp,0L,SEEK_SET);
EncryptFile(sfp,dfp,pwd);
printf(" Encryptedthefilesuccessfully! ");
/*輸出加密後的文件*/
printf(": ");
fseek(dfp,0L,SEEK_SET);
OutputFile(dfp);
fclose(sfp);
fclose(dfp);
李梁宴getch();
return0;
}


㈥ 求用c語言寫的文件加密解密代碼

/*給文件加密的技術很多,其中又分為不同等級,以適合不同場合的需要.
這里給出最簡單的文件加密技術,即採用文件逐位元組與密碼異或橋肢方式對
文件進行加密,當解密時,只需再運行一遍加密程序即可.
*/
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>

void dofile(char *in_fname,char *pwd,char *out_fname);/*對文件進行加密的具體函數*/

void main(int argc,char *argv[])/*定義main()函數的命令行參數*/
{
char in_fname[30];/*用戶輸入的要加密的文件名*/
char out_fname[30];
char pwd[8];/*用來保存密碼*/

if(argc!=4)
{/*容錯處理*/
printf("\nIn-fname:\嘩消舉n");

gets(in_fname);/*得到要加密的文件名*/

printf("Password:\n");
gets(pwd);/*得到密碼*/

printf("Out-file:\n");
gets(out_fname);/*得到加密後你要的文件名*/

dofile(in_fname,pwd,out_fname);
}

else

{/*如果命令行參數正確,便直接運行程序*/
strcpy(in_fname,argv[1]);
strcpy(pwd,argv[2]);
strcpy(out_fname,argv[3]);
dofile(in_fname,pwd,out_fname);
}

}

/*加密子函數開始*/
void dofile(char *in_fname,char *pwd,char *out_file)
{
FILE *fp1,*fp2;
register char ch;
int j=0;
int j0=0;

fp1=fopen(in_fname,"rb");
if(fp1==NULL)
{
printf("cannot open in-file.\n");
exit(1); /*如果不能打開要加密的文件,便退出程序*/
}

fp2=fopen(out_file,"wb");
if(fp2==NULL)
{
printf("cannot open or create out-file.\n");
exit(1); /*如果不能建立加密後的文件,便退出*/
}

while(pwd[++j0]);

ch=fgetc(fp1);

/*加密演算法開始*/
while(!feof(fp1))
{
fputc(ch^pwd[j>=j0?j=0:j++],fp2);/*異或後寫入fp2文件*/
ch=fgetc(fp1); /*把密碼重復寫到fp2中,而不是
只寫一次*/
}

fclose(fp1);/*關閉源文件*/
fclose(fp2);/*關閉目亂碧標文件*/
getch();

}

/*程序結束*/

熱點內容
外網訪問黑群暉 發布:2025-02-08 05:45:59 瀏覽:558
中央存儲伺服器公司地址 發布:2025-02-08 05:38:48 瀏覽:821
伺服器如何查詢表空間的文件路徑 發布:2025-02-08 05:38:00 瀏覽:162
宏基4741g哪個配置好 發布:2025-02-08 05:37:56 瀏覽:810
混合料運輸車的配置是如何計算的 發布:2025-02-08 05:31:35 瀏覽:293
android紅包插件 發布:2025-02-08 05:31:34 瀏覽:365
ea伺服器怎麼連接 發布:2025-02-08 05:16:45 瀏覽:463
更加密更改 發布:2025-02-08 05:15:20 瀏覽:786
倉儲資源配置都需要開展哪些任務 發布:2025-02-08 05:13:51 瀏覽:676
探針資料庫 發布:2025-02-08 05:13:35 瀏覽:80