C语言加密和解密算法

C语言加密和解密算法

简介:字符串的加密和解密方法一直被广泛应用,最常见的无非是 MD5 散列函数(MD5是信息摘要的一种,可以从任意长度的字符串生成128位的哈希值)。
先来看代码:(注意作者代码中的n全部都是自己可调控变量,自己取值即可)具体内容注释解释的很全面(码字不易)*

#include <stdio.h>
#include <string.h>
int main()
{
    int choose=1;//初始进入值为以便输入
    int i;
    int count=0;//后面用strlen统计字符串长度
    char text[128]={'\0'};//密码的初值,这里随便打关于是补码最大值-128 ~ +127
    char Plaintext[128]={'\0'};//存储加密后密码的数组是因为有
    while(1)
    {
        if(choose==1)
        {
            printf("输入要加密的内容:\n");
            scanf ("%s",&text);//输入字符串
            count=strlen(text);//统计字符串长度以便后面循环用
            for(i=0;i<count;i++)
            {
                Plaintext[i]=text[i]+i+n;//开始对密码进行加密这里设置的偏移量n自己设置移动量
			//不过平常这里的n都是通过随机函数来进行赋值的这里不进行多余解释
            }
            Plaintext[i]='\0';//加密新的明文到\0
            printf("加密后的是:%s\n",Plaintext);
        }
        else if(choose==2)//第二个是解密明文
        {
            count=strlen(text);
            for(i=0;i<count;i++)
            {
                text[i]=Plaintext[i]-i-n;//把原数减回来,得到初始密码
            }
            text[i]='\0';
            printf("解密后:%s\n",text);
        }
        else if(choose==3)//这里是用做退出
        {
            break;
        }
        printf("请输入数字1,2,3功能按键:\n");
scanf("%d",&choose);//通过输入2 3来进行菜单选择
    }
    return 0;
}


最后我们简单来说一下算法思想:使用 while 语句弄个一个无限循环,定义两个字符组,用来存储明文和加密后的字符串,然后通过偏移量来进行加密和解密,每当加密或者解密完之后,为了不让程序一直循环下去我们设置了一个3也就是一个break语句来退出循环变量从而完成程序。

  • 18
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值