c语言加密程序源代码

加密和解密算法是编程的重要组成部分。试想一下,如果我们平时用的腾讯QQ、支付宝支付密码、今日头条账号密码都这么容易被别人窃取,会发生很多不可预知的事情!

现实生活中,我们遇到过太多QQ密码被盗的案例。一些朋友的QQ被盗后,骗子利用朋友间的信任骗取钱财的情况屡见不鲜。支付宝也发生过支付宝账户被恶意盗用的事件,对用户利益造成了严重的损害!这些在技术上都指向同一个相关问题:软件加密算法的鲁棒性。今天,边肖用C语言简单地实现了一种加密方法。下面是源代码。

需要注意的是,程序是利用ascii码值按照一定的规则进行变换来实现加密的,对于解密过程来说,是加密的逆过程。下面是程序的运行结果。

4190阅读

搜索

300门免费编程课程

初学编程100个代码

java自学一般需要多长时间?

5秒钟破解excel密码

python必须背100个源代码。

40岁零基础编程

简单C语言加密程序? #包括

#包括

主()

{

intkey

charch

printf(" \ n请输入密钥:");

scanf("%d ",key);

Printf("获取对应的明文如下:");

while((ch=getchar())!='\r ')

(ch键)122?putchar(ch-122 33键):

((ch键)33?putchar(ch 122键):putchar(ch键));

}

输入和输出如下:

请输入密钥:20addse。

得到相应的明文如下:uxx.y

你输入一个任意的整数,比如20,然后在键盘上输入一个任意的字符,比如addse。

回车完成,你会得到结果,比如uxx.y

这是另一组输入和输出:

请输入密钥:35asjRYIRER!@#$^^*

得到对应的明文如下:=4u#luhuDcFG((MI-

怎么加密,你应该能理解,就是用三眼算子?:控制。

C语言如何加密解密文件? 对于加密要求不高的,可以自己定义规则来加密。这种加密非常简单,而且免费。比如保存文件时,可以给文件中的每个字符加一个数字,然后在读取文件时从每个字符中减去那个数字,可以实现简单的加密,这样保存的文件看起来就乱码了。只是这个规则太简单了,你可以自己制定规则,加密和解密是相反的。

下面的程序使用XOR运算来加密和解密文件。

* * * * * * * * * * * * * * * * * *设计思路* * * * * * * * * * * *

//根据用户输入的加密/秘密密码,

//每次取一个与原文件和密码长度相同的字符串和密码。

//加密/解密相应的元素XOR。

//另外,由于使用了异或方法,加密和解密是同一个程序。

//也就是按照同样的加密方式,对文件进行解密。

#包括

#包括

#包括

#包括

#包括

charfilename[256];//原始文件

char password[256];//加密/解密密码

constcharfilename temp[]= " temp 15435255435325432543 . temp ";//加密/解密中间文件

void inputpass(char * pass);//密码输入显示为“* * * * *”。

voidmain(){

FILE * fp//加密/解密文件

FILE * fptemp//加密/解密过程的临时文件

intpwdlen//密码长度

inti = 0;//计数器

charch = 0;//读入的字符

Printf("请输入要加密/解密的文件名(完整路径名:\ n ");

获取(文件名);

if((fp=fopen(filename," rb"))==NULL){

Printf("找不到文件% s \ n ",文件名);

出口(1);

}//如果

Printf("请输入要加密/解密的密码:\ n ");

inputpass(密码);

pwdlen=strlen(密码);

if(pwdlen==0){

Printf("密码不能为空,加密/解密失败\ n ");

出口(1);

}//如果

fptemp=fopen(filenametemp," WB ");//打开中间文件

while(1){

ch = fgetc(FP);//从原始文件中读取字符

If(feof(fp)){//已经读取了文件的结尾。

打破;//退出循环

}

ch^=password[i];//对原字符和密码进行异或运算。

fputc(ch,FP temp);//将异或结果写入中间文件。

If(i==pwdlen){//用等于密码长度的固定长度对原始文件进行异或加密。

I = 0;

}

}//当

fclose(FP);//关闭并打开原始文件

fclose(FP temp);//关闭并打开中间文件

删除(文件名);//删除原始文件

rename(文件名temp,文件名);//将中间文件重命名为原始文件。

Printf("加密/解密成功\ n ");//目前为止,加密/解密成功。

}

//密码输入显示为“* * * * *”。

voidinputpass(char*pass){

inti = 0;

charc

while(is print(c = getch()){

pass[I]= c;

//printf(" * ");

}

pass[I]= ' \ 0 ';

printf(" \ n ");

}

用c语言设计一个简单的加密和解密程序 c语言设计一个简单的加密解密程序如下:

加密程序代码:

# includestdio.h

主()

{

c,文件名[20];

文件

*fp1,* fp2

Printf("请输入要加密的文件名:\ n ");

scanf("%s ",文件名);

fp1=fopen(文件名,“r”);

fp2=fopen("miwen.txt "," w ");

{

c = fgetc(fp1);

如果(c=32c=126)

{

c = c-32;

c = 126-c;

}

如果(c!=-1)

fprintf(fp2," %c ",c);

}

而(c!=-1);

}

解密程序代码:

# includestdio.h

#includestring.h

主()

{

c,文件名[20];

燕正马[20];

文件

*fp1,* fp2

Printf("请输入要解密的文件名:\ n ");

scanf("%s ",文件名);

Printf("请输入验证码:\ n ");

scanf("%s ",燕正马);

if(strcmp(燕正马,“山”)==0)

{

fp1=fopen(文件名,“r”);

fp2=fopen("yuanwen.txt "," w ");

{

c = fgetc(fp1);

如果(c=32c=126)

{

c = 126-c;

c = 32°c;

}

如果(c!=-1)

fprintf(fp2," %c ",c);

}

而(c!=-1);

}

其他

{

Printf("验证码错误!请重新输入:\ n ");

scanf("%s ",文件名);

}

}

找到MD5加密算法的C语言源代码 (转载)# included dio . h # included lib . h # include memory . h # include time . h # include no . h # include string . h # include sys/socket . h # include sys/types . h # include netinet/in . h # include arpa/inet . h # include netdb . h # include "../MD5/MD5 . h " #定义T1 0x d 76 a 478 #定义T2 0x e 8 c 7 b 756 #定义T3 0x242070db #定义T4 0x C1 BDC eee #定义T5 0x f 57 c 0 faf #定义T6 0x 4787 c 62 a #定义T7 0xa8304613 #定义T8 0xfd469501 #定义T9 0x698098d8 #定义T10 0x 8b 44 f 7 af #定义T11 0x ffff 5 bb 1 #定义 定义T26 0xc33707d6 #定义T27 0x f 4d 50d 87 #定义T28 0x 455 a 14 ed #定义T29 0x a9 E3 e 905 #定义T30 0x fcefa 3 f 8 #定义T31 0x676f02d9 #定义T32 0x 8d 2 a4 c 8 a #定义T33 0xfffa3942 #定义T34 0x8771f681 #定义T35 0x6d9d6122 #定义T36 0xfde5380c #定义T37 0x a4 bee 定义T50 0x432aff97 #定义T51 0xab9423a7 #定义T52 0x fc 93 a 039 #定义T53 0x 655 b 59 c 3 #定义T54 0x 8 f 0 CCC 92 #定义T55 0xffeff47d #定义T56 0x85845dd1 #定义T57 0x 6 fa 87 E4 f #定义T58 0x Fe 2 ce 6 e 0 #定义T59 0xa3014314 #定义T60 0x4e0811a1 #定义T61 0x md5 _ word _ t t# ifndef ARCH _ IS _ BIG _ ENDIAN # define ARCH _ IS _ BIG _ ENDIAN 1/*较慢,默认实现*/# endif # if ARCH _ IS _ BIG _ ENDIAN/* *在big-endian机器上,我们必须按正确的*顺序排列字节。(这也适用于字节顺序未知的机器。)*/MD5 _ word _ t X[16];const md5 _ byte _ t * xp = dataint I;for(I = 0;i 16I,XP = 4)X[I]= XP[0](XP[1]8)(XP[2]16)(XP[3]24);#else /*!ARCH_IS_BIG_ENDIAN */ /* *在little-endian机器上,我们可以处理正确对齐的数据,而无需复制它。*/MD5 _ word _ t xbuf[16];const MD5 _ word _ t * X;如果(!((data-(const MD5 _ byte _ t *)0)3)){/*数据正确对齐*/ X = (const md5_word_t *)数据;} else { /*未对齐*/ memcpy(xbuf,data,64);X = xbuf} #endif #define ROTATE_LEFT(x,n)(((x)(n))|((x)(32-(n))))/* Round 1。*/ /*设[abcd k s i]表示运算a = b ((a F(b,c,d) X[k] T[i]) s)。*/ #define F(x,y,z)(((X)(y))|(~(X)(z)))# define SET(a,b,c,d,k,s,Ti)\ t = a F(b,c,d)X[k]Ti;\ a = ROTATE_LEFT(t,s) b /*做以下16个运算。*/ SET(a,b,c,d,0,7,T1);集合(d,a,b,c,1,12,T2);SET(c,d,a,b,2,17,T3);集合(b,c,d,a,3,22,T4);SET(a,b,c,d,4,7,T5);SET(d,a,b,c,5,12,T6);SET(c,d,a,b,6,17,T7);SET(b,c,d,a,7,22,T8);SET(a,b,c,d,8,7,T9);SET(d,a,b,c,9,12,T10);SET(c,d,a,b,10,17,T11);SET(b,c,d,a,11,22,T12);集合(a,b,c,d,12,7,T13);SET(d,a,b,c,13,12,T14);SET(c,d,a,b,14,17,T15);SET(b,c,d,a,15,22,T16);#undef SET /*第二轮。*/ /*设[abcd k s i]表示运算a = b ((a G(b,c,d) X[k] T[i]) s)。*/ #define G(x,y,z)(((X)(z))|((y)~(z)))# define SET(a,b,c,d,k,s,Ti)\ t = a G(b,c,d)X[k]Ti;\ a = ROTATE_LEFT(t,s) b /*做以下16个运算。*/ SET(a,b,c,d,1,5,T17);SET(d,a,b,c,6,9,T18);SET(c,d,a,b,11,14,T19);SET(b,c,d,a,0,20,T20);集合(a,b,c,d,5,5,T21);SET(d,a,b,c,10,9,T22);SET(c,d,a,b,15,14,T23);集合(b,c,d,a,4,20,T24);集合(a,b,c,d,9,5,T25);集合(d,a,b,c,14,9,T26);集合(c,d,a,b,3,14,T27);SET(b,c,d,a,8,20,T28);集合(a,b,c,d,13,5,T29);SET(d,a,b,c,2,9,T30);SET(c,d,a,b,7,14,T31);SET(b,c,d,a,12,20,T32);#undef集合

c语言编程代码加密 比如简单的移位加密可以这样。

FILE *fp=fopen("test.txt "," r ");

FILE *fp1=fopen("new.txt "," w ");

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

fputc(c 1,fp1);//逐个读取所有字符,ASCII值为1,保存到另一个文件。

然后就可以移除(" test . txt ");//删除文件

或者读取new.txt写回test.txt

解密是ASCII值-1。

相关文章

发表新评论