当前位置:首页 » 编程语言 » 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 浏览:559
中央存储服务器公司地址 发布: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