C语言-破解密码

题目描述

密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了。哇哈哈.

接下来渊子要在密码之上再加一套密码,虽然简单但也安全。

假设老王原来一个BBS上的密码为zvbo941987,为了方便记忆,他通过一种算法把这个密码变换成YUANzi1987,这个密码是他的名字和出生年份,怎么忘都忘不了,而且可以明目张胆地放在显眼的地方而不被别人知道真正的密码。

他是这么变换的,大家都知道手机上的字母: 1--1, abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0,就这么简单,老王把密码中出现的小写字母都变成对应的数字,数字和其他的符号都不做变换,声明:密码中没有空格,而密码中出现的大写字母则边成小写之后往后移一位,如:X,先边成小写,再往后移一位,不就是y了嘛,简单吧。记住,z往后移是a哦。

输入格式

输入包括多个测试数据。输入是一个明文,密码长度不超过100个字符,输入直到文件结尾。

输出格式

输出渊子真正的密文。

样例输入

YUANzi1987

样例输出

zvbo941987

复制代码
#include <stdio.h>

#include <stdlib.h>

#include <ctype.h>



char Change(char ch)

{

    if(islower(ch))

    {

        if(ch == 'a' || ch == 'b' || ch == 'c')

            return '2';

        if(ch == 'd' || ch == 'e' || ch == 'f')

            return '3';

        if(ch == 'g' || ch == 'h' || ch == 'i')

            return '4';

        if(ch == 'j' || ch == 'k' || ch == 'l')

            return '5';

        if(ch == 'm' || ch == 'n' || ch == 'o')

            return '6';

        if(ch == 'p' || ch == 'q' || ch == 'r' || ch == 's')

            return '7';

        if(ch == 't' || ch == 'u' || ch == 'v')

            return '8';

        if(ch == 'w' || ch == 'x' || ch == 'y' || ch == 'z')

            return '9';

    }else if(isupper(ch))

    {

        if(ch == 'Z')

            return 'a';

        else

            return ch + 33;

    }

    return ch;

}



int main()

{

    int i;

    char password[101];

    while(gets(password) != NULL)

    {

        i=0;

        while(password[i] != '\0')

        {

            printf("%c",Change(password[i]));

            i++;

        }

        printf("\n");

    }



    return 0;

}
相关推荐
Scott9999HH9 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
码智社10 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
AI云海10 小时前
python 列表、元组、集合和字典
开发语言·python
萧瑟余晖11 小时前
JDK 26 新特性详解
java·开发语言
马优晨12 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
人邮异步社区13 小时前
怎么把C语言学到精通?
c语言·开发语言
心平气和量大福大14 小时前
C#-WPF-控件-TextBox 数据绑定
开发语言·c#·wpf
ttwuai14 小时前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang
এ慕ོ冬℘゜14 小时前
前端基础:什么是时间戳?JS获取时间戳三种方法与实战用途
开发语言·前端·javascript
执明wa14 小时前
LayoutInflater详解: XML是如何变成View的?
android·xml·开发语言·android studio