预定义常量

以下常量由此扩展定义,只有在扩展已编译到 PHP 中或在运行时动态加载时才可用。

Mcrypt 可以使用四种块密码模式(CBCOFBCFBECB)。如果链接到 libmcrypt-2.4.x 或更高版本,则函数还可以使用 nOFB 块密码模式和 STREAM 模式。以下列出了所有支持的加密模式,以及为加密模式定义的常量。有关更完整的参考和讨论,请参见 Schneier 的《应用密码学》(ISBN 0-471-11709-9)。

  • MCRYPT_MODE_ECB (电子密码本) 是一种块密码模式,通常不适合大多数目的。不建议使用此模式。
  • MCRYPT_MODE_CBC (密码分组链接) 是一种块密码模式,比 ECB 模式安全得多。
  • MCRYPT_MODE_CFB (密码反馈,8 位模式) 是一种流密码模式。建议使用 NCFB 模式而不是 CFB 模式。
  • MCRYPT_MODE_OFB (输出反馈,8 位模式) 是一种流密码模式,与 CFB 相似,但可用于无法容忍错误传播的应用程序。建议使用 NOFB 模式而不是 OFB 模式。
  • MCRYPT_MODE_NOFB (输出反馈,n 位模式) 与 OFB 模式类似,但对算法的完整块大小进行操作。
  • MCRYPT_MODE_STREAM 是一种额外模式,用于包含一些流算法,例如 "WAKE""RC4"

Mcrypt 支持其他一些操作模式,没有预定义的常量。它们可以通过在缺少常量的地方传递字符串来使用。

  • "ctr" (计数器模式) 是一种流密码模式。
  • "ncfb" (密码反馈,n 位模式) 与 CFB 模式类似,但对算法的完整块大小进行操作。

其他一些模式和随机设备常量

MCRYPT_ENCRYPT (int)
MCRYPT_DECRYPT (int)
MCRYPT_DEV_RANDOM (int)
MCRYPT_DEV_URANDOM (int)
MCRYPT_RAND (int)

添加说明

用户贡献的说明 2 notes

gordon at vixo dot com
11 年前
这些常量并未涵盖所有可能的选项。

有两个常量
MCRYPT_MODE_OFB
MCRYPT_MODE_NOFB

它们分别对应于使用 8 位反馈模式的 OFB 模式和使用与密钥相同的反馈长度。

有一个常量
MCRYPT_MODE_CFB 使用 8 位反馈模式

应该有一个常量
MCRYPT_MODE_NCFB 使用与密钥相同的反馈长度。

实际上,你可以在 mycrypt 中直接使用选项 'ncfb'
Andrey Andreev
10 年前
您可以直接使用字符串代替常量……它们对于其他完全受支持的模式来说毫无用处且缺失。以下是列表

cbc
ecb
ofb
nofb
cfb
ncfb
ctr
stream
To Top