加密數據

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 起廢棄。強烈建議不要使用本函式。

說明

mcrypt_generic(resource $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

要加密的數據。

返回值

返回加密後的數據。

參見

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *