PHP加密和解密-高级


PHP Encryption and Decryption - High Level

我需要为客户端创建一个好的强加密系统。它将用于存储敏感的用户信息。我只是想从在这方面更有经验的人那里得到一些建议。听起来256位AES将是我的最佳选择。

我当时想的是http://www.movable-type.co.uk/scripts/aes-php.html

对于密钥,也许使用每个用户唯一的东西的哈希?

这听起来足够吗?

SHA只能单向工作(与任何人建议的MD5示例相同)。我认为他还希望有一种方法可以在需要时轻松解密和读取存储的数据

AES确实是一个非常好的选择。我会用同样的。

您会在共享托管环境中部署解决方案吗?一定要用你的加密/解密密钥对文件进行加密,这样其他用户就无法访问它。锁好房子,把密钥放在门前是没有意义的。

AES是最好的加密方法。:)

我已经使用AES加密类一年多了,这是在php中使用FIPS兼容AES加密的一种极好的方法。该脚本有免费版本(仅限ECB模式)和付费版本,价格仅为10美元。

这是一个完全独立的类,不需要mcrypt库,并且支持php4和php5。加密有128、192和256位,具体取决于密码长度。

使用它很容易,如下所示:

include("AES.class.php");
$my_256_key = 'MpDsw*8cQM&fez*7eBoZB^W*kP652NoW';
$initialization_vector = 'WmR&z28zWn8r*9$R';
$aes = new AES($my_256_key, "CBC", $initialization_vector);
$string_to_encrypt = 'SOME STRING OF TEXT, OR EVEN AN ENTIRE FILE';
$encrypted_string = $aes->encrypt($string_to_encrypt);
$original_string = $aes->decrypt($encrypted_string);

支持的密码模式有:电子码本(ECB)、密码块链接(CBC)、密码反馈(CFB)和输出反馈(OFB)块密码模式»

如果您需要将真正的加密集成到脚本中,我强烈推荐使用此类。它足够强大,可以存储信用卡等敏感数据(密钥管理是另一个主题),并且界面非常简单。

请记住,加密只有与所使用的密钥和密钥管理一样安全。与使用哈希函数(Md5、SHA1)不同,加密可以反转,并且会大大降低PHP脚本的速度,尤其是在加密大量数据时。