提升PHP开发安全性、代码复用性与异常处理能力
不使用mcrypt进行加密和解密
在广大PHP开发者群体中,有一个鲜为人知的事实:被认为是大多数基于PHP的安全加密核心的mcrypt扩展,其实并不安全。从安全角度来看,它存在诸多问题。一方面,mcrypt扩展的成功运行需要开发者具备高深的密码学知识,而这是大多数程序员所欠缺的,这就导致了其被大量滥用,最终可能出现数据损坏的风险,数据损坏的几率高达1/256。另一方面,mcrypt扩展所依赖的核心库libmcrypt在2007年就停止了开发者支持,这意味着其代码库陈旧、漏洞百出,且没有打补丁的机制。因此,掌握不使用mcrypt进行强加密和解密的方法至关重要。
以下是具体的操作步骤:
1.选择openssl扩展:解决方案是使用openssl扩展,它维护良好,具备现代且强大的加密和解密功能。但要注意,使用任何openssl函数之前,必须先编译并启用openssl PHP扩展,同时在Web服务器上安装最新的OpenSSL包。
2.确定可用的加密方法:使用openssl_get_cipher_methods()命令来确定安装环境中可用的加密方法。常见的算法包括基于高级加密标准(AES)、BlowFish(BF)、CAMELLIA、CAST5、数据加密标准(DES)、Rivest Cipher(RC)以及SEED等。需要注意的是,该方法会显示大小写重复的加密方法。
3.选择合适的加密方法:根据需求选择最合适的加密方法,以下是各种方法的简要总结: