导航:首页 > 文档加密 > 如何实现c加密解密

如何实现c加密解密

发布时间:2022-05-15 17:16:23

❶ c语言加密解密算法

这里使用的是按位加密,按ASCII码进行加密的算法自己写个,很容易的。
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
void
dofile(char
*in_fname,char
*pwd,char
*out_fname);/*对文件进行加密的具体函数*/
void
usage(char
*name);
void
main(int
argc,char
*argv[])/*定义main()函数的命令行参数*/
{
char
in_fname[30];/*用户输入的要加密的文件名*/
char
out_fname[30];
char
pwd[10];/*用来保存密码*/
if(argc!=4)
{/*容错处理*/
usage(argv[0]);
printf("\nIn-fname:\n");
gets(in_fname);/*得到要加密的文件名*/
while(*in_fname==NULL)
{
printf("\nIn-fname:\n");
gets(in_fname);
}
printf("Password
6-8:\n");
gets(pwd);/*得到密码*/
while(*pwd==NULL
||
strlen(pwd)>8
||
strlen(pwd)<6)
{
printf("Password
6-8:\n");
gets(pwd);
}
printf("Out-file:\n");
gets(out_fname);/*得到加密后你要的文件名*/
while(*in_fname==NULL)
{
printf("Out-file:\n");
gets(out_fname);
}
while(!strcmp(in_fname,out_fname))
{
printf("文件名不能和源文件相同\n");
printf("Out-file:\n");
gets(out_fname);
}
dofile(in_fname,pwd,out_fname);
printf("加密成功,解密请再次运行程序\n");
}
else
{/*如果命令行参数正确,便直接运行程序*/
strcpy(in_fname,argv[1]);
strcpy(pwd,argv[2]);
strcpy(out_fname,argv[3]);
while(*pwd==NULL
||
strlen(pwd)>8
||
strlen(pwd)<6)
{
printf("Password
faied!\n");
printf("Password
6-8:\n");
gets(pwd);
}
while(!strcmp(in_fname,out_fname))
{
printf("文件名不能和源文件相同\n");
printf("Out-file:\n");
gets(out_fname);
while(*in_fname==NULL)
{
printf("Out-file:\n");
gets(out_fname);
}
}
dofile(in_fname,pwd,out_fname);
printf("加密成功,解密请再次运行程序\n");
}
}
/*加密子函数开始*/
void
dofile(char
*in_fname,char
*pwd,char
*out_file)
{
FILE
*fp1,*fp2;
register
char
ch;
int
j=0;
int
j0=strlen(pwd);
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(j0>=0)
{
ch=fgetc(fp1);
while(!feof(fp1))
{
fputc(ch^pwd[j>=j0?j=0:j++],fp2);/*异或后写入fp2文件*/
ch=fgetc(fp1);
}
j0--;
}
fclose(fp1);/*关闭源文件*/
fclose(fp2);/*关闭目标文件*/
}
void
usage(char
*name)
{
printf("\t=======================File
encryption======================\n");
printf("\tusage:
%s
In-fname
password
out_fname\n",name);
printf("\tExample:
%s
file1.txt
12345678
file2.txt\n",name);
}

❷ c语言编写的程序,在输入密码时,如何加密

加密和解密算法是程序编制中的重要一环。试想,如果我们平时使用的腾讯QQ、支付宝支付密码、今日头条账号密码那么轻易就被别人盗取的话,很多不可以预料的事情就会发生!

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

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

4190阅读
搜索
编程免费课程300节
初学编程100个代码
java自学一般要学多久
5秒破解excel密码
python必背100源代码
40岁零基础学编程

❸ 用一个程序实现发送文件的加密和解密操作C语言、

jiami函数按照算法计算结果。delfile删除文件。给你说说主要的jiami函数。1.先设置你要加密的文件(oldfile)。2.设置密码,这里设置的密码是设置随机数种子。3.使用tmpnam函数生成一个唯一的文件名,然后生成一个临时文件,tmpfile,逐字节遍历oldfile中的内容,用原来的字符^随机数次方得到新的这个字节的内容,写入tmpfile原来的文件的一个字节---(计算)----新文件的一个字节4.把tempfile中内容写入原来的文件中,删除tempfile,完成加密PS.按照同样的代码,只需要把第3部中的计算修改为对应的逆运算可以完成解密。这里使用了一个技巧就是对于rand函数,相同的种子产生的随机数序列是一样的。其他的都简单,就不多说了,不懂得可以继续问。。//纯手打。。给分。。

❹ 谁知道怎么用C语言编写一个加密解密程序.

简单点的用异或来加解密
例如:
加密 data ^ 因子
解密也很简单主要讲加密后的文本一个一个字符读取和因子做个异或运算就OK了
复杂的加密解密就参考别的加密算法吧

❺ 如何用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");
}

❻ C语言如何进行字符加密

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

❼ C语言设计一个简单的加密解密程序

C语言设计一个简单的加密解密程序如下:
加密程序代码:
#include<stdio.h>
main()
{
char
c,filename[20];
FILE
*fp1,*fp2;
printf("请输入待加密的文件名:\n");
scanf("%s",filename);
fp1=fopen(filename,"r");
fp2=fopen("miwen.txt","w");
do
{
c=fgetc(fp1);
if(c>=32&&c<=126)
{
c=c-32;
c=126-c;
}
if(c!=-1)
fprintf(fp2,"%c",c);
}
while(c!=-1);
}
解密程序代码:
#include<stdio.h>
#include<string.h>
main()
{
char
c,filename[20];
char
yanzhengma[20];
FILE
*fp1,*fp2;
printf("请输入待解密文件名:\n");
scanf("%s",filename);
printf("请输入验证码:\n");
scanf("%s",yanzhengma);
if(strcmp(yanzhengma,"shan")==0)
{
fp1=fopen(filename,"r");
fp2=fopen("yuanwen.txt","w");
do
{
c=fgetc(fp1);
if(c>=32&&c<=126)
{
c=126-c;
c=32+c;
}
if(c!=-1)
fprintf(fp2,"%c",c);
}
while(c!=-1);
}
else
{
printf("验证码错误!请重新输入:\n");
scanf("%s",filename);
}
}

❽ 用c语言设计一个简单地加密算,解密算法,并说明其中的原理

恰巧这两天刚看的一种思路,很简单的加密解密算法,我说一下吧。
算法原理很简单,假设你的原密码是A,用A与数B按位异或后得到C,C就是加密后的密码,用C再与数B按位异或后能得回A。即(A异或B)异或B=A。用C实现很简单的。
这就相当于,你用原密码A和特定数字B产生加密密码C,别人拿到这个加密的密码C,如果不知道特定的数字B,他是无法解密得到原密码A的。
对于密码是数字的情况可以用下面的代码:
#include <stdio.h>
#define BIRTHDAY 19880314
int main()
{
long a, b;

scanf("%ld", &a);
printf("原密码:%ld\n", a);
b = BIRTHDAY;
a ^= b;
printf("加密密码:%ld\n", a);

a ^= b; printf("解密密码:%ld\n", a);
return 0;
}
如果密码是字符串的话,最简单的加密算法就是对每个字符重新映射,只要加密解密双方共同遵守同一个映射规则就行啦。

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

文件分为文本文件和二进制文件。加密方法也略有不同。
1、文本文件
加密的主要是文本的内容,最简单的方法就是修改文档的内容,比如1.txt中的文件内容:
abcd
只要给每一个字符+1,就可以实现加密。文件内容即会变为
bcde

2、二进制文件加密
二进制文件加密也就是对应用程序加密,需要理解可执行文件格式,比如Windows平台的Exe文件它是PE结构,Linux上的可执行文件是ELF结构,要对这样的程序进行加密,实际上是开发一种叫做“壳”的程序,这种程序的开发,需要将扎实的底层基础,同时也需要对软件加密解密有细致的理解,比如流行的vmprotect、z壳以及早些年的upx壳、aspack等等。

3、无论哪种加密都牵涉到文件操作的问题,使用C语言进行文件操作时,极少使用C标准库中的I/O函数,大多数使用操作系统提供的内存文件映射相关的API函数,有兴趣,可以搜索相关的资料。

❿ 用C语言设计一个文件加密与解密程序

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

1、首先打开VC++6.0;


4、声明头文件

#include<stdio.h>

#include<stdlib.h>

#include<string.h>


首先写个加密函数,算法就是简介里说的;

voidEncryptFile(FILE*sfp,FILE*dfp,charpwd)
{
charch;
if(sfp==0||dfp==0)
{
printf("ERROR! ");
return;
}
while((ch=fgetc(sfp))!=EOF)
{
if((ch>='a')&&(ch<='z'))
{
ch=(ch-'a'+1)%26+'a';
ch=ch^pwd;
}
if((ch>='A')&&(ch<='Z'))
{
ch=(ch-'A'+1)%26+'A';
ch=ch^pwd;
}
fputc(ch,dfp);
}
}

写解密子函数:与加密的过程相反;

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;
}

阅读全文

与如何实现c加密解密相关的资料

热点内容
卡尔曼滤波算法书籍 浏览:769
安卓手机怎么用爱思助手传文件进苹果手机上 浏览:844
安卓怎么下载60秒生存 浏览:803
外向式文件夹 浏览:240
dospdf 浏览:431
怎么修改腾讯云服务器ip 浏览:392
pdftoeps 浏览:496
为什么鸿蒙那么像安卓 浏览:736
安卓手机怎么拍自媒体视频 浏览:186
单片机各个中断的初始化 浏览:724
python怎么集合元素 浏览:481
python逐条解读 浏览:833
基于单片机的湿度控制 浏览:499
ios如何使用安卓的帐号 浏览:883
程序员公园采访 浏览:812
程序员实战教程要多长时间 浏览:979
企业数据加密技巧 浏览:135
租云服务器开发 浏览:814
程序员告白妈妈不同意 浏览:337
攻城掠地怎么查看服务器 浏览:601