C言語で簡単な暗号化プログラムの書き方

以下に、C 言語による簡単な暗号化プログラムの例を示します。

#include <stdio.h>

void encrypt(char *message, int key) {
    char ch;
    int i;

    for(i = 0; message[i] != '\0'; ++i) {
        ch = message[i];

        if(ch >= 'a' && ch <= 'z') {
            ch = ch + key;

            if(ch > 'z') {
                ch = ch - 'z' + 'a' - 1;
            }

            message[i] = ch;
        }
        else if(ch >= 'A' && ch <= 'Z') {
            ch = ch + key;

            if(ch > 'Z') {
                ch = ch - 'Z' + 'A' - 1;
            }

            message[i] = ch;
        }
    }
}

int main() {
    char message[100];
    int key;

    printf("请输入要加密的消息: ");
    fgets(message, sizeof(message), stdin);

    printf("请输入加密密钥: ");
    scanf("%d", &key);

    encrypt(message, key);
    printf("加密后的消息: %s\n", message);

    return 0;
}

このプログラムでは、シーザー暗号と呼ばれる暗号化アルゴリズムを使用しており、与えられたキーでメッセージ内の文字をシフトさせて暗号化されたメッセージを生成します。各文字はそのアルファベット内の位置に従ってシフトされます。シフト後にアルファベットの範囲を超えた場合は、アルファベットの先頭に戻ります。このプログラムでは、文字のみが暗号化され、他の文字は影響を受けません。

プログラム実行時に暗号化したいメッセージと暗号キーを入力してください。すると、暗号化されたメッセージが出力されます。このプログラムは単なるサンプルであり、実際の用途には、より複雑な暗号化アルゴリズムが必要になる場合があります。

bannerAds