函式名稱:mcrypt_generic_init()
函式描述:該函式用於初始化加密演算法的金鑰和IV(初始化向量),以供後續的加密操作使用。
適用版本:該函式在PHP 4 >= 4.0.2, PHP 5, PHP 7中可用。
語法:bool mcrypt_generic_init(resource $td, string $key, string $iv)
引數:
- $td:加密演算法的資源控制代碼,透過mcrypt_module_open()函式獲取。
- $key:用於加密的金鑰,長度必須符合演算法要求。
- $iv:初始化向量,長度必須符合演算法要求。
返回值:如果初始化成功,則返回true,否則返回false。
示例:
// 開啟加密演算法 $td = mcrypt_module_open('des', '', 'ecb', '');
// 生成金鑰和初始化向量 $key = "this is a secret key"; $iv = "12345678";
// 初始化加密演算法 if (mcrypt_generic_init($td, $key, $iv) !== false) { // 加密操作 $data = "Hello, world!"; $encrypted_data = mcrypt_generic($td, $data);
// 輸出加密後的資料
echo bin2hex($encrypted_data);
// 結束加密演算法
mcrypt_generic_deinit($td);
} else { echo "加密演算法初始化失敗"; }
// 關閉加密演算法 mcrypt_module_close($td);
在上面的示例中,首先透過mcrypt_module_open()函式開啟了一個DES加密演算法的資源控制代碼$td。然後,使用mcrypt_generic_init()函式初始化了該加密演算法的金鑰和初始化向量。如果初始化成功,就可以使用mcrypt_generic()函式對資料進行加密操作。最後,透過mcrypt_generic_deinit()函式結束加密演算法,並關閉資源控制代碼。