DAS*_*ASH 4 php cryptography aes php-openssl
我想在进入数据库之前加密敏感的用户数据,如我的php网站中的个人消息.我在互联网上研究了一下,我发现了一些要记住的重要事项:
永远不要使用mcrypt,它是放弃软件.
AES基于Rijndael算法,至今尚未完整.
AES也被NSA推荐并用于美国政府数据加密,但由于NSA推荐它,他们很可能很容易偷偷摸摸我的用户数据.
Blowfish也没有中断,但速度慢且不太受欢迎.
所以,我决定先用AES-256 cbc试一试.但我仍然不确定我是否不应该认为Blowfish是一个更好的选择.所以欢迎任何建议.
我主要担心的是,如何在php中加密数据?我在php文档中找不到关于这个的好手册.实施它的正确方法是什么?
任何帮助都非常感谢.
Luk*_*uke 18
你在运气中.
该openssl扩展有一些很容易使用AES-256的方法.你需要采取的步骤基本上......
$encryption_key = openssl_random_pseudo_bytes(32);$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));openssl_encrypt()
openssl_encrypt($data, 'aes-256-cbc', $encryptionKey, $options, $initializationVector)$options可以设置为0默认选项或改变OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING$encrypted = $encrypted . ':' . $iv;explode(':' , $encrypted); openssl_decrypt()
openssl_decrypt($encryptedData, 'aes-256-cbc', $encryptionKey, $options, $initializationVector)openssl_functions()默认情况下不可用,您可以php.ini通过取消注释该行在您的文件中启用此扩展程序.;extension=php_openssl.dll通过删除领先;
http://phpfiddle.org/lite/code/9epi-j5v2