很高兴和大家一起分享c语言加密算法例题的知识,希望对各位有所帮助。
#include stdio.h
#include string.h
int main()
{
char a[100];
unsigned i=0;
printf("输入字符串\n");
gets(a);
for(i=0;i=strlen(a)-1;i++)
a[i]^=15;
puts(a);
return 0;
}
/*注:15的二进制码是00001111,用一个二进制数异或(即^)00001111,表示对后四位取反,
异或的原理是0^1=0,0^0=1,1^1=0,1^0=1,简单记为相同得0,不同得1*/
可能很长 ,这是在我以前一个程序里摘出来的。
原理:用户输入创建密码,机器读取,并把每一位密码进行加密,这里就是把每一位的 ASCII码加一(也可以有其他的加密方式),然后保存在文件里。解密时从文件中读取保存的乱码,然后把它每一位的ascII码减一 在与你输入的密码比较,正确既可以进入。
#define CODE_SIZE 10
int password()
{
FILE *fp;
char s1[CODE_SIZE], s2[CODE_SIZE], s3[CODE_SIZE], fun;
while (1)
{
fp = fopen("password.txt", "r");
if (fp == NULL)
{
printf("第一次运行,请输入初始密码(最多8位):\n");
scanf("%s", s1);
printf("请再次输入初始密码:\n");
scanf("%s", s2);
if (strcmp(s1, s2) == 0)
{
fp = fopen("password.txt", "w+");
if (fp == NULL)
{
printf("创建文件失败退出\n");
getch();
exit(1);
}
else
{
//对s1加密
for (int i = 0; iCODE_SIZEs1[i] != ' '; i++)
{
s1[i] = s1[i] + i;
}
fputs(s1, fp);
printf("初始密码创建完成.\n");
}
}
else
{
printf("两次输入的密码不一致!\n");
}
fclose(fp);
}
else
{
fgets(s1, CODE_SIZE, fp);
fclose(fp);
printf("输入密码:\n");
scanf("%s", s2);
//对s1解密
for (int i = 0; iCODE_SIZEs1[i] != ' '; i++)
{
s1[i] = s1[i] - i;
}
loop:
if (strcmp(s1, s2) == 0)
{
printf("-----密码正确-----\n");
printf("-----请选择功能-----\n");
printf("-----1:修改密码-----\n");
printf("-----2:进入通讯录-----\n");
scanf("%d", fun);
switch (fun)
{
case 1: printf("请输入新密码\n");
scanf("%s", s1);
printf("请再次输入新密码\n");
scanf("%s", s2);
if (strcmp(s1, s2) == 0)
{
fp = fopen("password.txt", "w+");
if (fp == NULL)
{
printf("文件错误!\n");
}
else
{ //对s1加密
for (int i = 0; iCODE_SIZEs1[i] != ' '; i++)
{
s1[i] = s1[i] + i;
}
fputs(s1, fp);
fclose(fp);
printf("密码修改成功\n");
}
}
else
{
printf("两次输入的密码不一致,修改失败\n");
}
break;
case 2: return 1;
default: printf("无效指令\n");
}
}
else
{
printf("密码错误\n请重新输入\n");
scanf("%s", s2);
goto loop;
}
}
printf("------------------\n\n\n\n");
}
}
#include stdio.h
int main()
{
int t;
char w;
scanf("%d",t);
w=getchar();
while(t--)
{
char s[123];
int i=0;
gets(s);
while(s[i])
{
if(s[i]='a' s[i]='z')
printf("%d",s[i]-'a'+1);
else if(s[i]='A' s[i]='Z')
printf("%d",s[i]-'A'+27);
else
printf(" ");
i++;
}
printf("\n");
}
return 0;
}
#include "stdio.h"
#include "conio.h"
void main()
{
char str[255];
gets(str);
int i=0;
while(str[i]!=0)
{
if(str[i]='z'str[i]='a')
str[i++]+=-32;
else
if(str[i]='Z'str[i]='A')
str[i++]+=32;
else
i++;
}
printf("%s \n",str);
getch();
}
反正思路就是 大写字母就把ASCII码减32 小写就加32 其他字符不处理 直接下一次循环就好了
#include stdio.h
int main()
{
char s[100],*p;
printf("请输入字符串 : ");
gets(s);
p = s;
while(*p)
{
if((*p = 'a') (*p = 'z')) /*处理小写*/
{
*p ='z' - *p + 'a';
}
if((*p = 'A') (*p = 'Z')) /*处理大写,同理处理数字亦一样..自己例推*/
{
*p ='Z' - *p + 'A';
}
p++;
}
printf("转换后的字符串为 : %s\n\n",s);
return 0;
}
C语言设计一个简单的加密解密程序如下:
加密程序代码:
#includestdio.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=32c=126)
{
c=c-32;
c=126-c;
}
if(c!=-1)
fprintf(fp2,"%c",c);
}
while(c!=-1);
}
解密程序代码:
#includestdio.h
#includestring.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=32c=126)
{
c=126-c;
c=32+c;
}
if(c!=-1)
fprintf(fp2,"%c",c);
}
while(c!=-1);
}
else
{
printf("验证码错误!请重新输入:\n");
scanf("%s",filename);
}
}
产品的开发快则一个月,慢则一年,那么如何杜绝市面上各种山寨也成为了我们必须要关注的问题,加密芯片可以做到这点,在保障开发者权益的同时也保护了消费者权益,KEROS加密芯片作为该领域的领头者,一直在尽力贡献一份力。特点如下:接口:标准I2C协议接口;算法: 标准aes256 / KAS算法;特殊接口:Random Stream Cipher for Interface;工作温度:工业级 -40℃ ~+85℃;频率:400Khz;存储:2K字节EEPROM(可选);电压:1.8V~3.6V;封装:SOT23-6,SOP8,TDFN-6。c语言加密算法例题的介绍就聊到这里吧,感谢你花时间阅读本站内容,谢谢。
本文标签:c语言加密算法例题