/*
本文系「人工智能安全」(微信公众号)原创,转载请联系本文作者(同博客作者)。
欢迎你转发分享至朋友圈,并给予「关注、星标、点赞」三连支持。互相欣赏,互相批判。
我是一名有诗人气质的网络安全工程师
期待与你的思想交流碰撞出智慧的花火
水木清华
2020-03-15
简单密码
*/
#include<iostream>
using namespace std;
//密码(口令)变换的函数接口
string Password_Transformation(string str)
{
//字典法:考虑两个字典,一个是明文字典 a[],另一个是明文对应的加密字典 b[]。
//然后采用字典元素对应的方法,做加密或解密,实现方法为“字典下标对应索引以及元素匹配”。
char a[] = {"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"}; //非必要的参照字典
char b[] = {"bcdefghijklmnopqrstuvwxyza222333444555666777788899990123456789"}; //字符输出对应字典
int len = str.size();
for (int i = 0; i < len; i++)
{
//小写字母转数字
if ((str[i] >= 'a') && (str[i] <= 'z'))
{
str[i] = b[str[i] - 'a' + 26];
}
//大写字母转小写
if ((str[i] >= 'A') && (str[i] <= 'Z'))
{
str[i] = b[str[i] - 'A'];
}
//数字不用转换,保持原样
}
return str;
}
//主函数
int main()
{
string str;
while (getline(cin,str))
{
cout << Password_Transformation(str) << endl;
}
return 0;
}
//笨方法:为每一种情况写一个 if 判别语句,对应输出结果即可,