php数据加密技术 php常用加密技术

PHP 加密:AES & RSA 最近两年一直从事与金融相关项目的开发与维护 。但是,关于 PHP 加密解密的最佳实践,网上没有人给出一个完美的总结 。恰逢最近看了《图解密码技术》一书,对 PHP 加解密有了更深刻的认识 。
为了避免各位看枯燥的文字理论,开篇我就把总结给出:
一、对称加密
对称加密的特点是加解密速度快,加密后的密文强度目前还没有硬解的可能性 。但是 , 在未来随着计算机性能的提升有可能会出现被破解的可能性 。
对称加密的缺点也很明显 。对称加密的加密过程与解密过程使用的是同一把密钥 。一旦泄漏密钥,加密就失去了任何意义 。
根据《图解密码技术》一书的推荐,对称加密目前推荐使用 AES 。在 PHP 当中要实现 AES 加解密,是使用 openssl 扩展来实现 。所以,请确保你的 PHP 已经开启了 openssl 扩展 。
可以通过如下方式检测:
或者如下方式检测:
AES 的加密模式属于分组密码模式 。所谓分组密码 , 是加密时把明文按照固定的长度分组,然后再进行加密 。当然 , 细节之处很很多不同 。AES 分组模式有多种:ECB、CBC、CFB、OFB、CTR 五种分组模式 。目前优先推荐使用 CBC 模式 。
如果使用 CBC 模式,那么在加密的时候 , 就需要一个前置的加密向量 IV 。当初博主在使用 AES 来加密的时候,就很奇怪一个对称加密为何要这个向量 。因为,在博主寒冰的潜意识里,对称加密只需要一个密钥就 Ok 了 。没想到 AES 加密还有多种模式,而这个 CBC 模式恰恰就需要一个这样的向量值 。关于这个向量大家可以在网上查阅相关的资料 。这个东西非常重要,也非常好理解 。
关于 PHP AES 加解密会用到的相关方法:
AES 支持三种强度:128、192、256 。128 位的强度最低 , 但是,加密解密速度较快 。256 位强度最高 , 但是,加密解密速度最低 。所以,大家根据自己系统的重要程度选择使用对应强度 。通常普通的金融项目使用 192 位完整够用了 。顶级的就用 256 位 。其他的就用 128 位吧 。
二、非对称加密
非对称加密是指公钥加密私钥解密 , 私钥加密公钥解密的算法 。非对称加密的算法有很多 。《图解密码技术》一书推荐使用 RSA 算法 。它使用起来也非常简单 。
要使用 RSA 算法 。首先,我们必须生成一对公钥私钥 。其实生成公钥私钥很简单 。
在 Linux 系统,直接使用如下命令生成:
此命令会生~/.ssh/目录下生成两个文件:
id_rsa是私钥,is_rsa.pub是公钥 。
关于 PHP RSA 加解密会用到的相关方法:

各位用php将密码存入数据库,都用什么方法进行加密的php将密码存入数据库,可以分内常见的4种方式:
1、直接md5加密存到到数据库
2、md5两次存到数据库
3、对需要加密的字符串和一个常量 进行混淆加密
4、生成一个随机的变量存到数据库中,然后对需要加密的字符串和这个随机变量加密
?php$str="admin"; //需要加密的字符串$str2="php";//增加一个常量混淆 $pass1=md5($str);$pass2=md5(md5($str));$pass3=md5($str.$str2);echo $pass1."br".$pass2."br".$pass3;?
输出:
第四种
$str="admin"; //需要加密的字符串$encrypt=$row['encrypt']; // 生成的 随机加密字符串 存到数据库中$pass4=md5($str.$encrypt);//8db2ec7e9636f124e56f7eb4d7b7cc7e
php源码怎么加密一、无需任何PHP扩展php数据加密技术的加密

推荐阅读