PHP
加密 | Cryptography

mcrypt_generic

mcrypt_generic

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_generic - 此函数加密数据

警告

这个函数从 PHP 7.1.0 开始已经被 DEPRECATED 了。依靠这个功能是非常不鼓励的。

描述

string mcrypt_generic ( resource $td , string $data )

该功能加密数据。数据填充“ \ 0 ”以确保数据的长度为 n * blocksize。该函数返回加密数据。请注意,由于填充数据,返回字符串的长度实际上可能比输入长。

如果要将加密数据存储在数据库中,请确保存储由 mcrypt_generic 返回的整个字符串,否则字符串将无法完全正确解密。如果您的原始字符串长度为10个字符且块大小为8(使用 mcrypt_enc_get_block_size()来确定块大小),则数据库字段中至少需要16个字符。注意由 mdecrypt_generic()返回的字符串也是16个字符使用 rtrim($ str,“\ 0”)来删除填充。

例如,如果您将数据存储在 MySQ L数据库中,请记住 varchar 字段在插入过程中会自动删除尾随空格。由于加密数据可能以空格结尾(ASCII 32),因此删除数据将被损坏。将数据存储在 tinyblob / tinytext(或更大)字段中。

参数

td

加密描述符。

在调用此函数之前,应始终使用 mcrypt_generic_init()用密钥和IV初始化加密句柄。在加密完成后,您应该通过调用 mcrypt_generic_deinit()来释放加密缓冲区。有关示例,请参阅 mcrypt_module_open()。

data

要加密的数据。

返回值

返回加密的数据。

也可以看看

  • mdecrypt_generic() - Decrypts data

  • mcrypt_generic_init() - 此函数初始化加密所需的所有缓冲区

  • mcrypt_generic_deinit() - 此函数取消初始化加密模块

← mcrypt_generic_init

mcrypt_get_block_size →