XOR Encryption Online 會在您的瀏覽器中處理大型文字,輸入與金鑰資料均限制為 100,000 位元組。
這款以瀏覽器為基礎的 XOR Encryption Online 會對 UTF-8 位元組套用重複金鑰 XOR 轉換,並以小寫十六進位與標準填補 Base64 顯示確切的結果位元組。它可以解密任一種表示法,且此頁面不會上傳訊息、金鑰或輸出。
此工具適用於可逆文字轉換、教育、相容性檢查、無害謎題與搶旗競賽。不過,重複金鑰 XOR 並非安全的加密方式,因此增加文字大小並不適合用於機密或對完整性敏感的資訊。

100,000 位元組限制的意義
此限制適用於 UTF-8 位元組,而非可見字元。ASCII 字元通常佔用 1 個位元組,而表情符號與許多非拉丁文字可能各自佔用數個位元組。因此,僅憑字元數無法判斷訊息是否符合限制,尤其是文字包含多語段落或表情符號時。此上限旨在讓轉換、算繪與複製作業維持順暢。
明文輸入與金鑰都受 100,000 位元組限制。若任一項超過上限,請縮短內容或選擇其他有文件記載的工作流程後再處理。空白輸入與空白金鑰也會遭到拒絕。
明文中的空白符號具有意義。空格、定位點與換行會成為 UTF-8 訊息的一部分,而金鑰也必須完全相符,包括大小寫與空格。除非您打算變更產生的位元組,否則請避免在加密前修剪或重新格式化任一值。
在瀏覽器中加密大型文字
請使用下列工作流程轉換完整的明文訊息:
- 選擇 加密,然後將明文貼到輸入欄位中。請完整保留其空白符號。
- 以純文字輸入重複金鑰。金鑰欄位不會將 6B6579 之類的序列解讀為十六進位。
- 執行本機轉換。瀏覽器會將明文與金鑰編碼為 UTF-8,以 XOR 組合對應的位元組,並在明文長度超過金鑰時重新從金鑰開頭套用。
- 檢查小寫十六進位與填補後 Base64 的結果。兩者包含相同的 XOR 位元組,因此請選擇接收系統所需的表示法。
- 複製完整結果,並告知接收者您選擇的是十六進位還是 Base64。解密密文時,格式必須相符。
轉換作業會留在瀏覽器中,因此明文、金鑰與產生的輸出都不會上傳。處理長訊息時,請複製所選輸出的完整內容,而不只是螢幕上可見的部分。
比較十六進位與 Base64 輸出
兩種輸出格式都代表相同的底層位元組序列,但具有不同的傳輸與驗證規則。
| 表示法 | 確切規則 | 實務適用情境 |
|---|---|---|
| 十六進位 | 加密時,每個位元組會寫成 2 個小寫十六進位數字。解密時只接受由完整位元組配對組成的十六進位數字;空白符號會被忽略。 | 便於檢查個別位元組,但文字比 Base64 更長。 |
| Base64 | 加密時使用標準字母表與正確填補。解密時嚴格要求標準 Base64 字元與有效的填補。 | 比十六進位更精簡,也便於透過一般文字欄位傳遞。 |
切換輸出格式不會改變 XOR 密文本身。請選擇接收者或系統預期的格式,並且只傳送該表示法。編碼密文中的空白符號會因換行而被忽略,但解碼器不會進行其他清理,也不會猜測應如何修復格式錯誤的資料。
使用相符的格式與金鑰解密
還原訊息時,必須使用加密時相同的位元組、表示法與金鑰:
- 選擇 解密模式。
- 選擇密文所使用的相同表示法:十六進位或 Base64。
- 貼上完整密文。可以接受因換行而產生的空白符號,但不會自動修復格式錯誤的字元或無效填補。
- 輸入完全相同的金鑰文字,保留大小寫、空格與其他所有字元。
- 執行解密。系統會嚴格解析所選表示法,以重複的 UTF-8 金鑰對位元組進行 XOR,且結果必須通過嚴格的 UTF-8 驗證。
錯誤金鑰通常會產生無效的 UTF-8 位元組,因而顯示可見錯誤,而不是以替代字元無聲取代。該錯誤很有用,但成功解碼並不能證明金鑰正確,因為某些錯誤的位元組序列也會形成有效字元。
維持 UTF-8 位元組慣例一致
此實作使用 TextEncoder 產生 UTF-8 位元組,並使用 JavaScript 的 位元 XOR 運算子 將其組合。以公式表示,位置 i 的結果位元組等於位置 i 的明文位元組 XOR 位置 i modulo the key length 的金鑰位元組。每當明文超出金鑰長度時,金鑰便會重新開始。
這個精確的慣例可解釋其他程式為何可能產生不同結果。本頁的金鑰欄位包含的是文字,而非十六進位。例如,單字 key 會變成 UTF-8 位元組 6B 65 79。若改為輸入 6B6579,則會將這 6 個可見字元用作金鑰。接受十六進位金鑰或以 UTF-16 程式碼單位運作的工具採用不同的慣例,因此不一定會產生相符結果。
此轉換也能以位元組而非使用者感知的字素簇運作。表情符號可能佔用數個明文位元組,因此也會佔用數個金鑰位置。若要可靠地比較不同工具,請先確認雙方皆使用 UTF-8 文字與完全相同的金鑰文字,再比較其十六進位或 Base64 輸出。
診斷錯誤與不相符的輸出
嚴格解析可將格式錯誤的密文與其他失敗情形區分開來。十六進位輸入必須包含完整的位元組配對,且僅由十六進位數字組成。Base64 輸入必須使用標準字母表與正確填補。忽略空白符號是刻意設計,但工具不會移除其他無效字元,也不會猜測修正值。
- 逐字元比較金鑰,包括大小寫、空格與換行。
- 確認傳輸過程未改寫 Base64 填補,也未移除十六進位位元組配對。
- 當明文或金鑰接近 100,000 位元組時,請檢查 UTF-8 位元組數。
- 請透過獨立管道確認明文的實際意義,而不要只依賴肉眼可讀性。
某些錯誤金鑰仍會產生有效的 UTF-8,尤其是短 ASCII 訊息,因為隨機位元組可能偶然形成有效字元。如果解密結果在語法上有效卻毫無意義,金鑰仍可能錯誤。請另外確認預期文字,再將往返轉換視為成功。
僅在適合可逆混淆的場合使用
請勿使用重複金鑰 XOR 來保護密碼、個人紀錄、付款細節、私密金鑰,或任何需要機密性與完整性的資訊。此方法沒有校驗和、驗證標籤、鹽值、隨機數、密碼強化或金鑰管理系統,而且攻擊者可在不被偵測的情況下修改密文。
重複金鑰會暴露模式,已知明文可能揭露金鑰位元組,而短金鑰尤其薄弱。對敏感的大型文字,請選擇經審查的認證加密系統與經過評估、能安全處理金鑰的應用程式。在其有文件記載的位元組限制內,XOR Encryption Online 仍適用於無害的可逆轉換與位元組層級的相容性檢查,前提是參與雙方都能保留完全相同的金鑰與表示法。