下列常量由此擴展定義,且僅在此擴展編譯入 PHP 或在運行時(shí)動(dòng)態(tài)載入時(shí)可用。
Mcrypt 支持以下四種分組密碼模式:CBC,
OFB,CFB 和
ECB。
如果使用 libmcrypt-2.4.x 或更高版本鏈接,
還可以支持 nOFB 分組模式
和 STREAM 模式。
下列是所支持的加密模式以及其對應的預定義常量。
完整的參考見(jiàn):Applied Cryptography by Schneier (ISBN 0-471-11709-9)。
MCRYPT_MODE_ECB (electronic
codebook) 是一種分組加密模式,但是它無(wú)法適用于大部分場(chǎng)景,
所以不建議使用這種模式進(jìn)行分組加密。
MCRYPT_MODE_CBC (cipher block
chaining) 也是一種分組加密方式,
相對 ECB 模式,它更加安全。
MCRYPT_MODE_CFB (8 比特模式的 cipher
feedback) 是一種流式加密模式。
相對于 CFB 而言,
推薦使用 NCFB 模式。
MCRYPT_MODE_OFB (output feedback, in
8bit) 和 CFB 類(lèi)似,
也是一種流式加密模式,它可以用在無(wú)法容忍加密錯誤傳播的應用中。
推薦使用 NOFB 模式,而不是 OFB 模式。
MCRYPT_MODE_NOFB (output feedback,
in nbit) 和 OFB 類(lèi)似,但是更加安全,
因為它可以按照算法指定的分組大小來(lái)對數據進(jìn)行加密。
MCRYPT_MODE_STREAM 是一種擴展模式,
它包含了諸如 "WAKE" 或 "RC4" 的流加密算法。
Mcrypt 還支持一些尚未預定義常量的加密模式。 可以通過(guò)傳入一個(gè)字符串來(lái)使用使用未預定義常量的加密模式。
"ctr" (counter mode) 是一種流式加密模式。
"ncfb" (cipher feedback,
in n-bit mode),類(lèi)似于 CFB 模式,
但是它會(huì )對于算法設定的整塊數據進(jìn)行操作。
其他模式以及隨機設備常量:
MCRYPT_ENCRYPT
(integer)
MCRYPT_DECRYPT
(integer)
MCRYPT_DEV_RANDOM
(integer)
MCRYPT_DEV_URANDOM
(integer)
MCRYPT_RAND
(integer)