預定義常量

下列常量由此擴展定義,且僅在此擴展編譯入 PHP 或在運行時動態(tài)載入時可用。

Mcrypt 支持以下四種分組密碼模式:CBC, OFB,CFBECB。 如果使用 libmcrypt-2.4.x 或更高版本鏈接, 還可以支持 nOFB 分組模式 和 STREAM 模式。 下列是所支持的加密模式以及其對應的預定義常量。 完整的參考見:Applied Cryptography by Schneier (ISBN 0-471-11709-9)。

  • MCRYPT_MODE_ECB (electronic codebook) 是一種分組加密模式,但是它無法適用于大部分場景, 所以不建議使用這種模式進行分組加密。
  • MCRYPT_MODE_CBC (cipher block chaining) 也是一種分組加密方式, 相對 ECB 模式,它更加安全。
  • MCRYPT_MODE_CFB (8 比特模式的 cipher feedback) 是一種流式加密模式。 相對于 CFB 而言, 推薦使用 NCFB 模式。
  • MCRYPT_MODE_OFB (output feedback, in 8bit) 和 CFB 類似, 也是一種流式加密模式,它可以用在無法容忍加密錯誤傳播的應用中。 推薦使用 NOFB 模式,而不是 OFB 模式。
  • MCRYPT_MODE_NOFB (output feedback, in nbit) 和 OFB 類似,但是更加安全, 因為它可以按照算法指定的分組大小來對數(shù)據(jù)進行加密。
  • MCRYPT_MODE_STREAM 是一種擴展模式, 它包含了諸如 "WAKE""RC4" 的流加密算法。

Mcrypt 還支持一些尚未預定義常量的加密模式。 可以通過傳入一個字符串來使用使用未預定義常量的加密模式。

  • "ctr" (counter mode) 是一種流式加密模式。
  • "ncfb" (cipher feedback, in n-bit mode),類似于 CFB 模式, 但是它會對于算法設定的整塊數(shù)據(jù)進行操作。

其他模式以及隨機設備常量:

MCRYPT_ENCRYPT (integer)
MCRYPT_DECRYPT (integer)
MCRYPT_DEV_RANDOM (integer)
MCRYPT_DEV_URANDOM (integer)
MCRYPT_RAND (integer)