c语言密码加密
加密和解密算法是程序编制中的重要一环。试想,如果我们平时使用的腾讯QQ、支付宝支付密码、今日头条账号密码那么轻易就被别人盗取的话,很多不可以预料的事情就会发生!
在现实生活中,我们遇到过太多QQ密码被盗取的情况,有的朋友QQ被盗之后,骗子利用朋友间信任骗取钱财的事情屡见不鲜。支付宝也曾出现过支付宝账户被恶意盗取的事件,对用户利益造成了严重损害!这些在技术上都指向了同一相关问题:软件加密算法的强壮程度。今天,小编利用C语言来简单实现一种加密方法。下面是源代码。
需要说明:程序利用了ascii码值的按照一定规律变换实现加密,对于解密过程,则是加密的逆过程。下面是程序的运行结果。
4190阅读
搜索
编程免费课程300节
初学编程100个代码
java自学一般要学多久
5秒破解excel密码
python必背100源代码
40岁零基础学编程
B. 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. C语言密码加密,求解释
很高兴能为你解答!这是一个很普通的程序。
char a[5];这串代码的意思是(定义一个字符数组元素为5个)。
for(i=0;i<5;i++)
{
scanf("%c",&a[i]);
}这串代码的意思是(用了一个for循环条件为5次,每次要求用户输入一个字符,共输入五次)。
for(m=0;m<5;m++)
{
a[m]=a[m]+4;
}这串代码也是一个循环体,循环五次,每次都会进行运算表达式,a[m]=a[m]+4;这里的是每次将a[m]+4在赋给a[m]。如果还有什么不明白可以追问。
D. C语言 简单对字母进行加密
1、在我们的编辑页面输入以下代码。
E. c语言实现密码加密
unsignedchar*encrypt(unsignedchar*psw,intenc){
intsum=0,i;
if(enc){
for(i=0;i<6;i++){
psw[i]-=15;
sum+=psw[i];
}
psw[6]=(unsignedchar)sum;
psw[7]=0;
}
else{
for(i=0;i<6;i++){
sum+=psw[i];
psw[i]+=15;
}
if((unsignedchar)sum!=psw[6]){
printf("Badpassword ");
psw[0]=0;
returnpsw;
}
else{
psw[6]=0;
}
}
for(i=0;i<3;i++){
unsignedchart=psw[i];
psw[i]=psw[5-i];
psw[5-i]=t;
}
returnpsw;
}
intmain()
{
unsignedcharpsw[128];
scanf("%s",psw);
printf("encodeto:%s ",encrypt(psw,1));
printf("decodeto:%s ",encrypt(psw,0));
return0;
}
F. 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;
}
G. C语言实现密码表加密
#include<stdio.h>
#include<stdlib.h>
#define N 1024
int find(char *pt,char c)
{
int i,r=-1;
for(i=0;'\0'!=pt[i];i++)
{
if(c==pt[i])
{
r=i;
break;
}
}
return r;
}
int main()
{
char mingwen[]="";
char miwen[]="";
char buf1[N],buf2[N];
int i,n;
scanf("%s",buf1);
for(i=0;'\0'!=buf1[i];i++)
{
if(-1!=(n=find(mingwen,buf1[i])))
{
buf2[i]=miwen[n];
}
else
{
buf2[i]=buf1[i];
}
}
buf2[i]='\0';
printf("%s\n",buf2);
system("PAUSE");
return EXIT_SUCCESS;
}
H. c语言编写的程序,在输入密码时,如何加密
前言:当今社会是一个信息社会,你的个人信息和聊天记录极有可能被别有用心的人时时刻刻监视着,那么你想不想实现专属于两个人或一个小圈子的人在社交软件上的交流不被任何其他人读懂呢?
下面就给大家提供一个原理极其简单程序极其容易实现的C语言文字加密小程序的实现算法。
在键盘上录入了"今天晚上我不回家吃饭了",将这串字符的ASCLL码全部加1,打印出来是这样的"掘晚晤市嫌臣假接凑负绿"。怎么样,哈哈哈,是不是看完后丈二和尚摸不着头脑?
所以,用这种算法实现对汉字的加密和翻译绝对隐蔽!汉字在计算机中的编码比较复杂,一个汉字在Windows 10系统下的CodeBlocks编译器里占2个字符的位置,我记得我有做过测试,在Cent OS Linux系统下占3个字符的位置。
然而不管一个汉字占几个字符的位置,对每个字符的ASCLL码做加减乘除的运算和逆运算就可以实现对文字的加密和翻译。
下面向大家展示一下源代码(加密算法为将所有字符的ASCLL码加1,翻译算法为将所有字符的ASCLL码减1):
头文件部分:
主函数部分:
下面向大家展示一下加密与翻译的效果:
思考与提高:仅仅将所有字符的ASCLL码加1就实现对文字信息的加密了,会不会很容易被破译呢?请恕我不是密码学专家,这一点我无法回答,但是直观感觉这样加密确实有点简单。
那么我们就可以对字符进行多种更为复杂的处理,比如给所有字符加上一个正负变换的数列、给所有字符加上斐波那契数列等。总之,直观感觉就是越复杂越不容易被破译。
下面向大家展示一下给所有字符加上一个正负变换的数列的加密算法的源代码:
头文件部分:
主函数部分主要是用来调试的,与上面那个简单加密算法的主函数部分相同。
下面向大家展示一下使用这种复杂加密算法加密与翻译的效果:
用了加密程序后,画风是这样的:
I. C语言输入密码将其加密怎么弄
int
main()
{
c1=
getchar();
:
:
c6=
getchar();
c1=c1+20;
:
c6=c6+20;
putchar(c1);
:
putchar(c6);
}
程序大概这个样子,有什么问题再追问,手机码字还有这破输入法,写得很难受
J. C语言密码加密{(回车与删除怎么实现)跪求}
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
main()
{
char key[8]={0};//接受8位数密码
char ch=0;
int i=0,j=0;//循环变量
int number=0;//选择功能键的变量
char temp=0;
printf("〓〓〓〓〓〓〓〓〓〓〓〓〓【密码加密系统】〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n");
printf("\n〖⒈显示密码〗\n");
printf("〖⒉加密密码〗 \n");
printf("〖⒊解密密码〗 \n");
printf("〖⒋退出程序〗 \n");
printf("\n〓〓〓〓〓〓〓〓〓〓〓〓〓【密码加密系统】〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n");
printf("请输入8位密码:");
for(i=0;i<8;i++)
{
ch=getch();
key[i]=ch;
printf("*");
}
while(1)
{
printf("\n请选择功能 :");
scanf("%d",&number);
if(number<=4)
{
switch(number)
{
case 1:
{
for(i=0;i<9;i++)
if(key[i]=='\r') printf("回车");
else if(key[i]=='\b') printf("退格");
else printf("%c",key[i]);
break;
}
case 2:
{
for(i=0;i<9;i++) key[i]+=5;
temp=key[0];
key[0]=key[8];
key[8]=temp;
for(i=0;i<9;i++) printf("%d",key[i]);
break;
}
case 3:
{
for(i=0;i<9;i++) key[i]-=5;
temp=key[0];
key[0]=key[8];
key[8]=temp;
for(i=0;i<9;i++)
if(key[i]=='\r') printf("回车");
else if(key[i]=='\b') printf("退格");
else printf("%c",key[i]);
break;
}
case 4: exit(0);
}
}
else
{
printf("\n您输入的功能键有误请重新输入");
scanf("%d",&number);
}
}
}
/*VC++ 6.0编译通过。注:从键盘输入的回车是'\r',而不是'\n'*/