加密/解密PHP类

时间:2011-10-09 13:38:46

标签: php encryption

可以加密数据或对象数组并将其作为 hash 序列化字符串返回的最佳加密/解密类/函数是什么?

然后,在解密时,可以将序列化字符串解密回其包含对象或数组值的原始值形式。

由于

2 个答案:

答案 0 :(得分:3)

前言:您似乎有一个概念,即散列某些数据与加密数据相同。哈希是 NOT 加密,无法通过密码或密钥文件进行反转,如加密可以。

PHP附带了几个散列协议,如md5md5_file),SHA1SHA1_file)。这一切都取决于你正在使用这个哈希做什么,以及你最初的哈希值。

答案 1 :(得分:2)

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"
相关问题