本文介紹一種無需第三方庫、極簡實現的文本加密方法——異或 (XOR) 加密。利用位運算特性:A ^ B ^ B = A,同一密鑰加密解密同碼。
private char[] Encrypt(string content, string secretKey) {
char[] data = content.ToCharArray();
char[] key = secretKey.ToCharArray();
for (int i = 0; i < data.Length; i++) {
data[i] ^= key[i % key.Length]; // 循環使用密鑰
}
return data;
}
private string Decrypt(char[] data, string secretKey) {
char[] key = secretKey.ToCharArray();
for (int i = 0; i < data.Length; i++) {
data[i] ^= key[i % key.Length]; // 再次異或即還原
}
return new string(data);
}
i % key.Length)。
string original = "Hello World";
string key = "secret";
char[] encrypted = Encrypt(original, key); // 得到亂碼字符數組
string decrypted = Decrypt(encrypted, key); // 還原 "Hello World"
// 密鑰錯誤嘗試
string wrong = Decrypt(encrypted, "wrong"); // 亂碼
| 需求 | 推薦方案 |
|---|---|
| 對稱加密 | AES-GCM (認證加密),使用 System.Security.Cryptography.AesGcm |
| 非對稱加密 | RSA-OAEP / ECDH |
| 密碼存儲 | BCrypt / Argon2 / PBKDF2 (單向哈希 + 鹽值) |
| 完整性校驗 | HMAC-SHA256 |
XOR 加密代碼極短、無依賴,是理解位運算與對稱加密本質的優秀教具,但嚴禁用於真實業務數據保護。