C言語で文字列を暗号化する方法

C言語を使って文字を暗号化する方法はいくつかあります。以下にシンプルな暗号化メソッドであるシーザー暗号の実装例を示します:

#include <stdio.h>

// 凯撒密码加密函数
void caesarEncrypt(char* str, int shift) {
    int i = 0;
    while (str[i] != '\0') {
        // 判断字符是否为字母
        if (str[i] >= 'a' && str[i] <= 'z') {
            // 加密小写字母
            str[i] = (str[i] - 'a' + shift) % 26 + 'a';
        } else if (str[i] >= 'A' && str[i] <= 'Z') {
            // 加密大写字母
            str[i] = (str[i] - 'A' + shift) % 26 + 'A';
        }
        i++;
    }
}

int main() {
    char str[100];
    int shift;

    printf("请输入要加密的字符串:");
    gets(str);

    printf("请输入加密的位移数(0-25):");
    scanf("%d", &shift);

    caesarEncrypt(str, shift);

    printf("加密后的字符串为:%s\n", str);

    return 0;
}

この例では、シーザー暗号の暗号化アルゴリズムを使用しています。与えられた文字列の文字を指定されたシフト数だけオフセットすることで、暗号化を行います。この例では、シフト数はキーボード入力でユーザーが入力します。注意:この例では、文字のみが暗号化され、その他の文字は変更されません。

bannerAds