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

Java 使用 XOR 運算子實現字串加密與解密

     編輯:Java 相關知識

前言

在 Java 程式設計中,利用位元運算進行簡易加密是一項基礎且實用的技巧。異或(XOR)運算因其「加密與解密使用相同操作」的特性,常被用於教學示範或輕量級資料混淆。本文將透過完整範例,展示如何應用 XOR 運算子對字串進行加密與解密。

核心原理

XOR 運算具有以下關鍵特性:對任意值 A 與金鑰 K,若 C = A ^ K,則 C ^ K = A。這意味著同一組金鑰既能加密也能解密。程式中將字串轉為字元陣列,逐一與指定整數(如 20000)進行 XOR 運算,即可得到加密後的字串;再次執行相同邏輯即可還原。

完整程式碼範例

import java.util.Scanner;

public class XorEncryption {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("請輸入欲加密/解密的英文字串:");
        String input = scanner.nextLine();

        char[] chars = input.toCharArray();
        final int KEY = 20000; // 自訂金鑰

        for (int i = 0; i < chars.length; i++) {
            chars[i] = (char) (chars[i] ^ KEY);
        }

        String result = new String(chars);
        System.out.println("處理結果:" + result);
    }
}

執行範例

輸入:www.example.com
輸出(加密後):駛駛駛與唏唏嗶嗶與乃唏唏
再次輸入上述亂碼並執行程式,即可還原為原始網址。

注意事項與限制

  • 本範例僅適用於教學與簡易混淆,不具備資安強度,切勿用於保護敏感資料(如密碼、金鑰)。
  • 金鑰 20000 超出基本多語言平面(BMP)範圍,實際運作時 Java 會取低 16 位,等同於 20000 & 0xFFFF = 34464;建議明確使用 char 範圍內的金鑰(0~65535)。
  • 加密後可能產生不可列印或控制字元,導致終端機顯示異常或資料儲存問題。

總結

XOR 運算展示了位元運算在資料轉換上的高效特性。理解其原理有助於深入學習對稱式加密、校驗碼演算法等進階主題。實務開發中,請採用 AES、RSA 等經過驗證的加密標準。

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