C言語で数字を暗号化する方法は?
C言語では一般的な暗号化アルゴリズムを採用することで数値を暗号化することができます。例えば、排他的論理和暗号、シフト暗号、シーザー暗号などが挙げられます。以下では、排他的論理和暗号を例に説明します。
排他的論理和暗号化とは、平文と鍵を入力として排他的論理和演算を行い、暗号文を作成する単純な暗号化アルゴリズムです。復号の際は、と同じ鍵で排他的論理和演算を行い、平文に戻します。
次のコード例をご覧ください。
#include <stdio.h>
// 异或加密函数
int encrypt(int num, int key) {
return num ^ key;
}
// 异或解密函数
int decrypt(int num, int key) {
return num ^ key;
}
int main() {
int num = 123; // 待加密的数字
int key = 7; // 密钥
// 加密
int encryptedNum = encrypt(num, key);
printf("加密后的数字:%d\n", encryptedNum);
// 解密
int decryptedNum = decrypt(encryptedNum, key);
printf("解密后的数字:%d\n", decryptedNum);
return 0;
}
暗号化関数のencryptは数字と鍵を受け取り、それらをXOR演算してその結果を返します。復号化関数のdecryptはencryptと同じ論理で、復号化に使用されます。main関数では、暗号化される数字numと鍵keyが定義され、暗号化関数のencryptが呼び出されてそれが暗号化され、暗号化された数字が出力されます。さらに、復号化関数のdecryptが呼び出されてそれが復号化され、復号化された数字が出力されます。
簡単な排他的論理和(XOR)暗号化アルゴリズムは安全性が低く、簡単な暗号化のみに役立つので注意してください。高度な暗号化アルゴリズムが必要な場合は、より複雑な暗号化ライブラリまたはアルゴリズムを使用することを検討してください。