輸入待尋字串
  <?php
  require("http://php.wilson.gs");  // 回首頁
  echo "http://php.wilson.gs/bible/group.php : mcrypt 編碼函式庫";


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 將資料加/解密。


[ 上一頁 /bible/group.php 下一頁 ]



本站置於 NEC BIGLOBE 地球村網際網路  echo "Copyright © 1999-2000, Wilson Peng";
  mail("wilson@biglobe.net.tw", "Feedback", $message);
  ?>