C言語 文字列暗号化の基本と実装【サンプルコード付き】

C言語の一般的な文字列暗号化方法は、簡単な置換アルゴリズムであるシーザー暗号を使用することです。この方法は、文字列内の各文字を一定のオフセット量で置換することで、暗号化と復号化を実現します。

以下は具体的な手順です。

  1. 文字列内の文字を置換するために、オフセット(例えば3)を定義します。
  2. アルファベットの場合は、オフセットに従って置換されます。たとえば、’A’ を ‘D’ に置換します。
  3. 数字や他の文字の場合はそのままにしてください。
  4. 暗号化された文字列は置換後の結果を示しています。

以下は、サンプルコードです。

#include <stdio.h>
#include <string.h>

void encrypt(char* str, int offset) {
    int i;
    for (i = 0; i < strlen(str); i++) {
        if (str[i] >= 'A' && str[i] <= 'Z') {
            str[i] = (str[i] - 'A' + offset) % 26 + 'A';
        } else if (str[i] >= 'a' && str[i] <= 'z') {
            str[i] = (str[i] - 'a' + offset) % 26 + 'a';
        }
    }
}

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

    printf("Enter a string: ");
    scanf("%s", str);

    printf("Enter an offset: ");
    scanf("%d", &offset);

    encrypt(str, offset);

    printf("Encrypted string: %s\n", str);

    return 0;
}

注意:この簡単な置換暗号は非常に安全ではないため、簡単に解読される可能性があります。より安全な暗号化が必要な場合は、AES暗号化アルゴリズムなど、より高度な暗号化アルゴリズムを使用することができます。

bannerAds