鱼C论坛

 找回密码
 立即注册
查看: 75|回复: 2

凯撒密码c++怎么做

[复制链接]
发表于 2024-10-1 21:21:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
凯撒密码c++怎么做
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-10-1 21:21:42 | 显示全部楼层
嗨,鱼油!凯撒密码是一种简单的替换加密方法。下面是一个用C++实现凯撒密码的示例。这个程序可以对字符串进行加密和解密操作。
#include <iostream>
#include <string>

using namespace std;

// 加密函数
string encrypt(string text, int s) {
    string result = "";

    for (int i = 0; i < text.length(); i++) {
        if (isupper(text[i])) {
            result += char(int(text[i] + s - 65) % 26 + 65);
        } else {
            result += char(int(text[i] + s - 97) % 26 + 97);
        }
    }

    return result;
}

// 解密函数
string decrypt(string text, int s) {
    return encrypt(text, 26 - s);
}

int main() {
    string text;
    int shift;

    cout << "输入要加密的文本: ";
    getline(cin, text);

    cout << "输入偏移量: ";
    cin >> shift;

    string encryptedText = encrypt(text, shift);
    cout << "加密后的文本: " << encryptedText << endl;

    string decryptedText = decrypt(encryptedText, shift);
    cout << "解密后的文本: " << decryptedText << endl;

    return 0;
}

这个程序包括以下几个部分:
1. `encrypt` 函数:对文本进行加密。根据字符的大小写来计算新的字符位置。
2. `decrypt` 函数:通过将偏移量`s`变为`26-s`来实现解密。
3. `main` 函数:接受用户输入的文本和偏移量,并展示加密和解密后的结果。

希望这个示例能帮助你理解凯撒密码在C++中的实现!如果有任何问题,请随时问我哦!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-10-2 19:36:40 | 显示全部楼层
凯撒密码是一种简单的加密技术,通过将字母表中的每个字母移动固定的位数来进行加密。下面是一个使用 C++ 实现凯撒密码的示例代码,包括加密和解密功能。
属于古代加密技术(非现代,现在是流加密,对称加密,非对称加密)
#include <iostream>
#include <string>

using namespace std;

// 加密函数
string encrypt(const string& text, int shift) {
    string result = "";

    for (char c : text) {
        // 只处理字母
        if (isalpha(c)) {
            char base = islower(c) ? 'a' : 'A';
            result += char(int(base + (c - base + shift) % 26));
        } else {
            result += c; // 非字母字符不变
        }
    }
    return result;
}

// 解密函数
string decrypt(const string& text, int shift) {
    return encrypt(text, 26 - shift); // 解密可以通过反向加密实现
}

int main() {
    string text;
    int shift;

    cout << "请输入要加密的文本: ";
    getline(cin, text);
    cout << "请输入移位数: ";
    cin >> shift;

    string encryptedText = encrypt(text, shift);
    cout << "加密后的文本: " << encryptedText << endl;

    string decryptedText = decrypt(encryptedText, shift);
    cout << "解密后的文本: " << decryptedText << endl;

    return 0;
}
代码说明
encrypt 函数:将输入字符串中的字母按照给定的位移量进行加密。
decrypt 函数:通过调用 encrypt 函数,并反转位移量来解密。
main 函数:接受用户输入的文本和位移量,显示加密后的结果以及解密后的结果。
使用方法
编译并运行程序。
输入要加密的文本。
输入移位数(比如 3)。
程序将输出加密后的文本和解密后的文本。
这个示例程序只处理英文字母,对于其他字符(如数字、标点符号等)保持不变。你可以根据需要进一步扩展功能。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-12 17:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表