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;
}
このプログラムでは、シーザー暗号と呼ばれる暗号化アルゴリズムを使用しており、与えられたキーでメッセージ内の文字をシフトさせて暗号化されたメッセージを生成します。各文字はそのアルファベット内の位置に従ってシフトされます。シフト後にアルファベットの範囲を超えた場合は、アルファベットの先頭に戻ります。このプログラムでは、文字のみが暗号化され、他の文字は影響を受けません。
プログラム実行時に暗号化したいメッセージと暗号キーを入力してください。すると、暗号化されたメッセージが出力されます。このプログラムは単なるサンプルであり、実際の用途には、より複雑な暗号化アルゴリズムが必要になる場合があります。