mcrypt_generic
(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)
mcrypt_generic — 加密數據
本函式已自 PHP 7.1.0 起廢棄。強烈建議不要使用本函式。
說明
$td
, string $data
): string
本函式用來加密數據。
傳入數據長度必須是 n * 分組大小,否則需要后補 "\0
"。
本函式返回加密後的數據。
注意,根據數據補齊不同,
返回的數據可能比輸入的數據長度有所增加。
如果你需要把加密後的數據儲存到數據庫, 請確保儲存 mcrypt_generic 返回的完整的字串, 否則將無法正確解密。 如果原始數據有 10 個字元,分組大小為 8 (使用 mcrypt_enc_get_block_size() 獲取分組大小), 則數據庫中至少需要 16 個字元來儲存數據。 請注意 mdecrypt_generic() 函式返回的數據也會是 16 個字元。 使用 rtrim($str, "\0") 移除字串末尾的 0 。
如果你在例如 MySQL 這樣的數據庫中儲存數據, 請注意 varchar 型別的欄位會在插入數據時自動移除字串末尾的「空格」。 由於加密後的數據可能是以空格(ASCII 32)結尾, 這種特性會導致數據損壞。 請使用 tinyblob/tinytext(或 larger)欄位來儲存加密數據。
參數
-
td
-
加密描述符。
在呼叫本函式之前, 請使用 mcrypt_generic_init() 函式初始化加密控制代碼。 在加密完成之後, 需要呼叫 mcrypt_generic_deinit() 函式進行必要的清理工作。 請參見 mcrypt_module_open() 。
-
data
-
要加密的數據。
返回值
返回加密後的數據。
參見
- mdecrypt_generic() - 解密數據
- mcrypt_generic_init() - 初始化加密所需的緩衝區
- mcrypt_generic_deinit() - 對加密模組進行清理工作