和朋友聊天时好玩的加密小程序(第一版)

一位单身程序员分享了一个简单的C语言加密程序,该程序能够实现文本的加密和解密功能。通过将字符转换为数字再进行编码,进而实现加密效果。支持英文字符的加密,有兴趣者可通过私信获取手机C语言编译器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作为一个单身程序员
没事的时候给自己找点事做,要不然太无聊了
自己草率地写了一个加密通话的C程序

一看代码就知道怎么回事,先实现了这个功能,完善的事还要看后续

(不知道为什么电脑上的codeblocks只可以加密英文,手机上的编译器可以中英文)

(有需要手机C语言编译器的同学私信我哦)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/*
    Author:ZhenYangDu
    Date£:2021.4.20
    Edition:1
    from NEU software college
*/

int returnNum(int len,int a,int b,int c)
{
    if(len==1)
    {
        return a;
    }
    if(len==2)
    {
        return a*10+b;
    }
    if(len==3)
    {
        return a*100+b*10+c;
    }
    return 0;
}

char *decode(char input[])
{

    char *result;
    result=(char*)malloc(sizeof(char)*999);
    memset(result,'\0',999);
    int i=0;
    int a=-1,b=-1,c=-1;
    int len=0;
    int num=0;
    while(input[i]!='\0')
    {
        if(input[i]==32)
        {
            result[num]=returnNum(len,a,b,c);
            a=-1;
            b=-1;
            c=-1;
            len=0;
            i++;
            num++;
            continue;
        }
        if(a==-1)
        {
            a=input[i]-'0';
        }
        else if(b==-1)
        {
            b=input[i]-'0';
        }
        else
        {
            c=input[i]-'0';
        }
        len++;
        i++;
    }
    result[num]=returnNum(len,a,b,c);
    return result;


}

char *encode(char input[])
{
    char *result1;
    result1=(char*)malloc(sizeof(char)*999);
    memset(result1,'\0',999);
    int i=0;
    int num=0;
    while(input[i]!='\0')
    {
        int ch=input[i];
        int CH[3]={-1,-1,-1};
        int m=2;
        while((ch/10)!=0)
        {
            CH[m]=ch%10;
            ch=ch/10;
            m--;
        }
        CH[m]=ch;
        for(;m<=2;m++)
        {
            int middle=-1;
            middle='0'+CH[m];
            result1[num]=middle;
            num++;
        }
        result1[num]=32;
        num++;
        i++;
    }
    return result1;

}



int main()
{
    printf("Encode or Decode\n");
    char * input1=(char *)malloc((sizeof(char)*999));
    memset(input1,'\0',999);
    gets(input1);
    printf("please input\n");

    if(strcmp(input1,"encode")==0)
    {
        char * input2=(char *)malloc((sizeof(char)*999));
        memset(input2,'\0',999);
        gets(input2);
        input2=encode(input2);
        printf("%s\n",input2);
    }

    if(strcmp(input1,"decode")==0)
    {
        char * input3=(char *)malloc((sizeof(char)*999));
        memset(input3,'\0',999);
        gets(input3);
        input3=decode(input3);
        printf("%s\n",input3);
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值