解密16进制密码:小程序设计与实现

本文介绍一个小程序的设计与实现,用于解密一个加密后的密码。密码以16进制数形式表示,且位数一定是偶数。程序首先将每两位16进制数转换为10进制数,再进行处理以保证所有数小于100,最后对18取余并转换为18进制数。

解密规则

  1. 将每两位16进制数转换为10进制数
  2. 所有10进制数中,若其大于99,则将其除以10,以保证所有数小于100
  3. 再将所有处理后的10进制数对18取余
  4. 处理完后,转换为对应的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;
}
解密16进制密码:小程序设计与实现

原文地址: https://www.cveoy.top/t/topic/phYG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录