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暗号化アルゴリズムなど、より高度な暗号化アルゴリズムを使用することができます。