PHP完全中文操作手冊

天地JPLOP | PHP首頁 | 函數索引
mcrypt 編碼函數庫
本函數庫共有 8 個函數

要使用本函數庫要先準備 mcrypt 程序,可以到 ftp://argeas.cs-net.gr/pub/unix/mcrypt 下載這個程序 libmcrypt-x.x.tar.gz。同時在編譯 PHP 程序時需要加入 --with-mcrypt 的選項,俾使本函數庫能順利運作。

本函數提供的編碼方式有 DES、TripleDES、Blowfish (默認值)、3-WAY、SAFER-SK64、SAFER-SK128、TWOFISH、TEA、RC2 及使用 CBC, OFB, CFB, ECB 作為密碼檢索的 GOST。此外還有 RC6 及 IDEA 等非免費的編碼方式。見下面列示為已定義的密碼:

  • MCRYPT_BLOWFISH
  • MCRYPT_DES
  • MCRYPT_TripleDES
  • MCRYPT_ThreeWAY
  • MCRYPT_GOST
  • MCRYPT_CRYPT
  • MCRYPT_DES_COMPAT
  • MCRYPT_SAFER64
  • MCRYPT_SAFER128
  • MCRYPT_CAST128
  • MCRYPT_TEAN
  • MCRYPT_RC2
  • MCRYPT_TWOFISH (mcrypt 2.x 前的版本用)
  • MCRYPT_TWOFISH128 (mcrypt 2.x 後的版本用)
  • MCRYPT_TWOFISH192
  • MCRYPT_TWOFISH256
  • MCRYPT_RC6
  • MCRYPT_IDEA

在密碼檢索本 (cipher) 方面,本函庫支持 CBC、OFB、CFB 與 ECB 四種密碼檢索本。這四種密碼檢索本的簡單敘述如下,更詳細的信息請參考 Schneier 所著作的 Applied Cryptography (ISBN: 0-471-11709-9):

  1. ECB (electronic codebook): 適合隨機的資料,例如使用另外的密鑰。若資料量少且隨機時,使用 ECB 較不適合。
  2. CBC (cipher block chaining): 適合文件的加密,安全性較 ECB 好。
  3. CFB (cipher feedback): 適合對位組資料流中的某段獨立位組資料 (single bytes) 加密。
  4. OFB (output feedback): 與 CFB 相容,尤其適合在無法忍受錯誤波及的應用上。

目前 PHP 仍無法對單位 (bit) 的熵值做加密解密的步驟,目前隻適合對字符串作密碼處理。

在使用 CFB 及 OFB 二種模式時,必須要向量初始化 (Initialization vector, IV),CBC 模式也可以使用向量初始化。向量初始化的值在加解密時必須是獨一無二的,同時也要保持相同。當加密後的資料輸出時,也可同時輸出密碼鑰匙 (例如存在文件中);或者也可以將向量初始化的值與加密後的資料一起輸出。

mcrypt_get_cipher_name:取得編碼方式的名稱。
mcrypt_get_block_size:取得編碼方式的區塊大小。
mcrypt_get_key_size:取得編碼鑰匙大小。
mcrypt_create_iv:從隨機源將向量初始化。
mcrypt_cbc:使用 CBC 將資料加/解密。
mcrypt_cfb:使用 CFB 將資料加/解密。
mcrypt_ecb:使用 ECB 將資料加/解密。
mcrypt_ofb:使用 OFB 將資料加/解密。



整理: 夕垌菪姬 (天地JPLOP)

[ 上一頁 回主目錄 下一頁 ]
版權所有,天地JPLOP、爵堤亞(夕垌菪姬)。網頁背景音樂和各鍊結標題
及鍊結內容和文章小說,版面編排皆歸原權利人所有對本版面
有任何意見或指教,歡迎至論壇指教。