解密16进制密码:小程序设计与实现
解密16进制密码:小程序设计与实现
本文介绍一个小程序的设计与实现,用于解密一个加密后的密码。密码以16进制数形式表示,且位数一定是偶数。程序首先将每两位16进制数转换为10进制数,再进行处理以保证所有数小于100,最后对18取余并转换为18进制数。
解密规则
- 将每两位16进制数转换为10进制数
- 所有10进制数中,若其大于99,则将其除以10,以保证所有数小于100
- 再将所有处理后的10进制数对18取余
- 处理完后,转换为对应的18进制数
输入描述
输入文件 psword.in。
一行,包含一个字符串,代表一个加密后的密码。其位数必定是偶数位。
输出描述
输入文件 psword.out。
一行,解密后的密码。
样例1
输入
AB097FB57DFF
输出
H9C0C7
提示
2<=字符串长度<=200,字符串长度必定是偶数。
C++ 代码实现
#include <iostream>
#include <string>
using namespace std;
string decryptPassword(string password) {
string decryptedPassword = '';
for (int i = 0; i < password.length(); i += 2) {
string hex = password.substr(i, 2);
int decimal = stoi(hex, nullptr, 16);
if (decimal > 99) {
decimal /= 10;
}
int remainder = decimal % 18;
char hexChar;
if (remainder < 10) {
hexChar = '0' + remainder;
} else {
hexChar = 'A' + remainder - 10;
}
decryptedPassword += hexChar;
}
return decryptedPassword;
}
int main() {
string password;
cin >> password;
string decryptedPassword = decryptPassword(password);
cout << decryptedPassword << endl;
return 0;
}
原文地址: https://www.cveoy.top/t/topic/phYG 著作权归作者所有。请勿转载和采集!