在项目开发中,为了防止一些敏感信息的泄露,通常我们会对这些信息进行加密,比如用户的登录密码,如果不加密直接进行明文存储的话,就很容易被人看到,但密码对用户来说是保密的,因此我们需要对数据进行加密后再存储,这样一来,即使被看到也是我们加密后的数据,从而大大提高了安全性。
今天,我们就来写一个小小的例子来模仿一下字符串加密和解密的过程。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
int main() {
int result = 1;
int i;
int count = 0;
char text[128] = {'\0'};//存放明文字符串
char cryptograph[128] = {'\0'};//存放密文字符串
while (1)
{
if (result==1)
{
printf("请输出要加密的明文:\n");
scanf("%s", &text);
count = strlen(text);
for (i = 0; i < count; i++)
{
cryptograph[i] = text[i] + i + 5;//加密
}
cryptograph[i] = '\0';
printf("加密后的密文是:%s\n", cryptograph);
}
else if (result==2)
{
count = strlen(text);
for (i = 0; i < count; i++)
{
text[i] = cryptograph[i] - i - 5;//解密
}
text[i] = '\0';
printf("解密后的明文是:%s\n",text);
}
else if (result==3)
{
break;
}
else
{
printf("请按提示输入:\n");
}
printf("输入1加密明文,输入2对刚加密的明文进行解密,输入3退出程序:\n");
printf("请按提示输入:\n");
scanf("%d",&result);
}
return 0;
}
运行结果:
程序分析:
这里采用的加密算法十分简单,就是将字符串中的每个字符加上它在字符串中的位置和一个偏移值5,cryptograph[i] = text[i] + i + 5;//加密
我们输入的字符串是helloworld,第一个字符h在字符串中的位置是0,那么它对应的密文字符是'h'+0+5,即'm'。
【END】