首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

C# 簡單文本加密實現:XOR 異或算法原理與代碼示例

     編輯:Java 相關知識

本文介紹一種無需第三方庫、極簡實現的文本加密方法——異或 (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 加密代碼極短、無依賴,是理解位運算與對稱加密本質的優秀教具,但嚴禁用於真實業務數據保護。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved