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

利用 XOR 運算實現數據與文件加密:原理、代碼與工具下載

     編輯:關於C語言

異或運算加密的核心原理

異或運算有一個獨特的性質:一個數值連續異或同一個鍵值兩次後,將恢復原值。即 c = a ^ b; c = c ^ b; 後 c == a。這特性構成了最簡單的對稱加密基礎。

加密函數實現

bool XorEncrypt(void* bufPtr, unsigned int bufSize, const char* key, unsigned int keySize) {
    if (!bufPtr || !key || keySize == 0) return false;
    char* ptr = (char*)bufPtr;
    for (unsigned int i = 0; i < bufSize; i++) {
        unsigned int index = i % keySize;
        ptr[i] ^= key[index];
    }
    return true;
}

參數說明:bufPtr 為待加密數據指針,bufSize 為數據長度,key 為密鑰指針,keySize 為密鑰長度。同一函數同時用於加密與解密。

測試驗證

測試代碼分別對 int、float、double 陣列執行兩次 XorEncrypt,調試截圖顯示數值經加密變亂,解密後完美還原。

原始數據 加密後數據 解密後數據

文件加密小工具

同樣原理可應用於文件加密。工具截圖展示加密前後的文件內容對比。受限於內存,最大可處理文件大小取決於系統單次可申請內存上限。

加密前文件 加密後文件

注意:異或加密屬於極弱加密,極易被破解,僅供教學或非敏感場合使用。

完整軟件與源碼下載:FileEncrypt.zip

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