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