什麼是最好的加密/解密類/函數,可以加密一個數組或數據對象並將其作爲
散列
序列化的字符串返回?加密/解密PHP類
然後,在解密時,可以將序列化的字符串解密回到其包含對象或數組值的原始值的形式。
感謝
什麼是最好的加密/解密類/函數,可以加密一個數組或數據對象並將其作爲
散列
序列化的字符串返回?加密/解密PHP類
然後,在解密時,可以將序列化的字符串解密回到其包含對象或數組值的原始值的形式。
感謝
mcrypt庫有許多函數可以用你夢想的方式進行加密。以下是使用AES的示例:
$secretKey = 'the longer, the better';
$originalString = 'some text here';
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $secretKey, $originalString,
MCRYPT_MODE_CBC, $iv);
printf("Original string: %s\n", $originalString);
// Returns "Original string: some text here"
printf("Encrypted string: %s\n", $crypttext);
// Returns "Encrypted string: <gibberish>"
$decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $secretKey, $crypttext,
MCRYPT_MODE_CBC, $iv);
// Drop nulls from end of string
$decrypttext = rtrim($decrypttext, "\0");
printf("Decrypted string: %s\n", $decrypttext);
// Returns "Decrypted string: some text here"
如果您打算輕鬆與其他系統互操作,我鼓勵您考慮不使用MCRYPT_RIJNDAEL_256。 Rijandael的大多數實現(包括AES)都使用128位塊大小。使用256位塊大小可以作爲其他系統與PITA服務交流的PITA。您仍然可以使用帶128位Rijandael塊的256位密鑰。 –