C言語 文字列暗号化の基本と実装【サンプルコード付き】
C言語の一般的な文字列暗号化方法は、簡単な置換アルゴリズムであるシーザー暗号を使用することです。この方法は、文字列内の各文字を一定のオフセット量で置換することで、暗号化と復号化を実現します。
以下は具体的な手順です。
- 文字列内の文字を置換するために、オフセット(例えば3)を定義します。
 - アルファベットの場合は、オフセットに従って置換されます。たとえば、’A’ を ‘D’ に置換します。
 - 数字や他の文字の場合はそのままにしてください。
 - 暗号化された文字列は置換後の結果を示しています。
 
以下は、サンプルコードです。
#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暗号化アルゴリズムなど、より高度な暗号化アルゴリズムを使用することができます。