当前位置:首页 » 密码管理 » c中文加密

c中文加密

发布时间: 2022-10-01 02:11:49

A. c语言如何进行字符加密

进行字符加密是很多种的。
数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码为“密文”,使其只能在输入相应的密钥之后才能显示出原容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。 该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。

B. c语言字母加密

按照你的要求编写的字母加密的C语言程序如下

(姓字母向后移两位,名字母向后移三位)

#include<stdio.h>

#include<string.h>

int main(){

char src[30],result[]="",ch[2]={''};

int i,j,len;

fgets(src,30,stdin);

len=strlen(src);

for(i=0;src[i]!=' ';i++){

if('a'<=src[i] && src[i]<='z'){

ch[0]=(char)(((src[i]-'a')+2)%26+'a');

strcat(result,ch);

}else if('A'<=src[i] && src[i]<='Z'){

ch[0]=(char)(((src[i]-'A')+2)%26+'A');

strcat(result,ch);

}else{

ch[0]=src[i];

strcat(result,ch);

}

}

for(j=i;j<len;j++){

if('a'<=src[j] && src[j]<='z'){

ch[0]=(char)(((src[j]-'a')+3)%26+'a');

strcat(result,ch);

}else if('A'<=src[j] && src[j]<='Z'){

ch[0]=(char)(((src[j]-'A')+3)%26+'A');

strcat(result,ch);

}else{

ch[0]=src[j];

strcat(result,ch);

}

}

printf("%s ",result);

return 0;

}

C. 如何用c语言加密和解密汉字

汉字应该是char类型的数据。你可以用强制类型转换将其转换为ASCII码,加密的时候加上2,然后下次解密的时候减去2,在强制转换为char类型的数据。代码大概就像这样:

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

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

D. 利用C语言给文字加密,急~

这里面用到的大部分都是对字符串的基本操作。谭浩强C语言书上都能找到的。里面我都有注释了。有什么疑问再说
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>

int key[3][3]={6,24,1 , //密钥
13,16,10 ,
20,17,15 ,};

int prech(char a[],char b[][3]) //预处理,返回明文的组数
{
int i=0,j=0;
for (; *a!='\0'; ++a)
if (isalpha(*a)) //isalpha判断是否为字母
{
b[i][j]=tolower(*a)-'a'; //b[][]存放每一组明文,3个字母为一组。tolower函数是把大写变小写,并-a使之变成对应的数字
++j;
if (j==3)
{
j=0;
++i;
}
}
while(j!=3 && j!=0) //后面不够的用a补齐
{
b[i][j]=0;
j++;
}
return i;
}

void solve(char b[][3],int n) //求密文
{
int i,j;
char c[3];
for(i=0;i<n;i++)
{
for(j=0;j<3;j++) //算出b[i]组的值存放到c数组中
{
c[j]=(b[i][0]*key[j][0]+b[i][1]*key[j][1]+b[i][2]*key[j][2])%26+'A';
}
for(j=0;j<3;j++)
b[i][j]=c[j]; //把c数组的内容还给b[i]组
}
return ;
}

int main(void)
{
int len,i,j;
char s[100]; //明文
char b[40][3]; //3个为一组,存放每一组的字母对应的数字
scanf("%s",s);
len=prech(s,b);
solve(b,len);
for(i=0;i<len;i++)
for(j=0;j<3;j++)
printf("%c",b[i][j]);
printf("\n");
return 0;
}

E. c语言加密 汉字问题

汉字应该是char类型的数据。你可以用强制类型转换将其转换为ASCII码,加密的时候加上2,然后下次解密的时候减去2,在强制转换为char类型的数据。代码大概就像这样:

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

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

F. c语言文本文件加密

你所使用的文件处理函数,均为fputc,fgetc,fscanf等字符处理函数

加密前,文本内容确实是字符串,但是加密后,就会存在非字符型数据,这时候fputc,fgetc,fscanf等函数就不能进行正常处理了。简单的例子,\0,\13这些数据会被字符处理函数截断

所以请使用fread,fwrite等函数,这样就不会局限于字符串了

比如fscanf(rsc,"%d,",&sec[temp]);,你可以写成fread((void *)&sec[temp],sizeof(int),1,rsc);

G. c语言编程汉字加密

你要知道计算机中的任何字符都是数字编码

汉字也是一样,也是有数字编码的

位运算就是直接操作字符的二进制编码从而打乱编码顺序就实现加密了,然后可以用特定的算法再还原回来

一般用位运算 把文件的内容进行一定算法的位操作就可以了

H. C语言怎么加密字符

#include<stdio.h>
#include<string.h>
intmain()
{
charstr[]="00000",str2[]="00000",*p=str,*p2=str2;
printf("输入5个字母:");
while(*p!=0)
{
scanf("%c",p);
if(*p==' ')
continue;
if(*p<'A'||(*p>'Z'&&*p<'a')||*p>'z')//输入验证,必须是字母
{
printf("只能输入字母,请重新输入 ");
p=str;
p2=str2;
fflush(stdin);//输入有错重新输入前清空缓冲区。fflush属于c扩展函数,正常使用没问题,如需在linuxggc上使用,考虑多次调用getchar函数来清空
}
else
{
*p2=(*p)+4;
if(*p2>90&&*p2<97)//大写字母加4,最大位不超出
*p2='A'+(*p2-90)-1;
if(*p2>122)//小写字母加4,最大位不超出
*p2='a'+(*p2-122)-1;
p2++;
p++;
}
}

printf("原字符串为:%s 加密后的字符串为:%s ",str,str2);
return0;
}

I. 如何用C语言对文件进行加密和解密

对于加密要求不高的完全可以自己定义规则来进行加密。这种加密是很简单很自由的,例如你在存文件的时候可以将文件中的每个字符都加上一个数,然后读取该文件的时候再每个字符相应地减去那个数,即可实现就简单的加密,这样你储存的文件看上去就是乱码了。只是这个规则太简单,规则你可以自己定,加密与解密对着来就行了。
下面程序用异或操作对文件进行加密和解密
/****************** 设计思路 ******************/
// 根据用户输入的加密/机密密码,
// 每次都拿原文件和密码等长度的一个字符串和密码
// 对应元素异或进行加密/解密
// 另外因为是用异或方法,所以加密和解密就是同一个程序
// 即按照同样的加密即是对文件的解密

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <conio.h>
#include <stdlib.h>

char filename[256]; // 原文件
char password[256]; // 加密/解密密码
const char filenametemp[] = "temp15435255435325432543.temp"; // 加密/解密中间文件

void inputpass(char *pass); //密码输入以"******"显示

void main() {

FILE *fp; // 加密/解密的文件
FILE *fptemp; // 加密/解密过程临时文件
int pwdlen; // 密码长度
int i = 0; // 计数器
char ch = 0; // 读入的字符

printf("请输入要加密/解密的文件名(全路径名): \n");
gets(filename);
if( (fp = fopen(filename, "rb")) == NULL) {
printf("找不到文件 %s\n", filename);
exit(1);
} // if

printf("请输入要加密/解密的密码: \n");
inputpass(password);
pwdlen = strlen(password);
if(pwdlen == 0) {
printf("密码不能为空,加密/解密失败\n");
exit(1);
} // if

fptemp = fopen(filenametemp, "wb"); // 打开中间文件
while(1) {
ch = fgetc(fp);// 从原文件读入一个字符
if(feof(fp)) { // 已经读到文件尾
break; // 退出循环
}
ch ^= password[i++]; // 对原字符和密码进行异或操作
fputc(ch, fptemp); // 将异或结果写入中间文件
if(i == pwdlen) { // 使得原文件每和密码长度相同的固定长度异或加密
i = 0;
}
} // while

fclose(fp); // 关闭打开原文件
fclose(fptemp); // 关闭打开中间文件

remove(filename); // 删除原文件
rename(filenametemp, filename); // 将中间文件重命名为原文件
printf("加密/解密成功\n"); // 至此加密/解密成功

}

// 密码输入以"******"显示
void inputpass(char *pass) {
int i = 0;
char c;
while(isprint(c = getch())) {
pass[i++] = c;
// printf("*");
}
pass[i] = '\0';
printf("\n");
}

J. 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);
}
主函数,主要调用这几个函数
intmain()
{
/*用户输入的要加密的文件名*/
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;
}


热点内容
sql中去重 发布:2025-05-16 04:55:06 浏览:892
dwr上传图片 发布:2025-05-16 04:49:46 浏览:121
base64加密的图片 发布:2025-05-16 04:35:46 浏览:355
数据结构c语言版清华大学出版社 发布:2025-05-16 04:30:44 浏览:273
c语言取小数点 发布:2025-05-16 04:22:26 浏览:379
公司权力配置有哪些问题 发布:2025-05-16 04:21:43 浏览:924
tcl电视怎样删了缓存 发布:2025-05-16 04:16:56 浏览:211
收费数据库 发布:2025-05-16 04:06:43 浏览:347
编译程序时跳转到另一个文件 发布:2025-05-16 04:03:42 浏览:250
清除exe用户名密码缓存 发布:2025-05-16 04:02:04 浏览:608