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

PHP 可逆加密解密演算法:基於進制轉換與隨機混淆

     編輯:PHP 綜合知識

自研雙向加密類別,結合任意進制轉換 (2-36) 與 Base64 變體編碼,適合輕量級資料加密傳輸。

核心架構

  • Carry 類:實現 N 進制 ↔ M 進制轉換 (支援 0-9, A-Z 共 36 字符)。
  • Han 類:封裝完整加密/解密流程:
    1. 字串 → Unicode 編碼陣列 (中文雙位元組處理)。
    2. 各編碼值經 Carry(10→33) 轉 33 進制。
    3. 每 3 位 33 進制數 → Carry(35→7) → Carry(8→10) 多重轉換。
    4. 結果映射至 64 字符表 (A-Z, a-z, 0-9, *, +) 並插入隨機干擾字符。
    5. 解密為逆向過程,含長度補零邏輯。

關鍵代碼片段

class Carry {
    function __construct($n,$m) { $this->n=$n; $this->m=$m; /* 初始化字符映射表 */ }
    function toDEC($a) { /* N進制轉十進制 */ }
    function toM($a)   { /* 十進制轉M進制 */ }
    function get($a)   { /* 驗證並執行完整轉換 */ }
}
class Han {
    function tocode($str)   { /* 字串→編碼陣列→33進制 */ }
    function getcode($str)  { /* 33進制→編碼陣列→字串 */ }
    function encode($str)   { /* 多重進制轉換+隨機混淆 */ }
    function discode($str)  { /* 移除干擾字符+逆向進制轉換 */ }
    function decode($str)   { /* 完整解密流程 */ }
}

特點與限制

  • ✅ 純 PHP 實現,無擴充依賴。
  • ✅ 可逆、支援中文、輸出可列印字符。
  • ⚠️ 非加密學安全,**嚴禁用於密碼、金鑰、敏感個資**。
  • ⚠️ 演算法屬安全性模糊,逆向工程難度低。

適用場景

  • URL 參數簡易混淆。
  • 非敏感資料傳輸防偷窺。
  • 教學演示加密原理。

生產環境敏感資料請使用 OpenSSL、libsodium 等經驗證的加密庫。

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