PHP 于本周发布的 7.2.0 版本使得它安全性大大提高,该版本改进了编程语言对密码学和密码哈希算法的支持,并使其更现代化。
到目前为止,在 PHP 7.2 中最显著的变化是,新增对密码哈希算法 Argon2 的支持。Argon2 于 2010 年初开发,现已成为 IETF 中普遍认可的互联网标准。
Argon2 被认为优于 Bcrypt
目前认为该算法在安全性和成本效益方面优于当今使用最广泛的密码散列函数 Bcrypt。除了密码散列函数外,该算法还适用于与现代电子(加密)货币一起使用的工作证明操作。
从周四发布的PHP 7.2 开始,Argon2 v1.3已经被添加到 PHP 内核中,开发者可以通过 password_hash() 函数使用它。
// Argon2i with default cost factors password_hash('password', PASSWORD_ARGON2I);
Mcrypt out, Libsodium in
PHP 7.2 的另一个主要变化是从 PHP 内核中删除旧的 Mcrypt 加密库,并增加了一个更现代的替代品 Libsodium。
Libsodium 库的开发者表示要摆脱 ext/mcrypt,因为这是已被抛弃的软件,会抑制语言的发展。
尽管在过去十年,PHP 遭遇过不少风雨,但自从 2015 年下半年 7.x 版本发布以来,它已经变得更加快速和安全。
引用来自“辉火”的评论
我比较关心除了加密算法还有点别的什么吗?密码现在还有挺多用MD5的。aes和rsa这些才是加密算法,PHP中的openssl扩展提供了相关支持:
openssl_encrypt/openssl_decrypt
openssl_public_encrypt/openssl_private_decrypt
function aes_encrypt($str, $key = AES_KEY, $iv = AES_IV) {
return base64_encode(
openssl_encrypt(
$str, 'aes-128-cbc',
base64_decode($key), OPENSSL_RAW_DATA,
base64_decode($iv)
)
);
}
function aes_decrypt($str, $key = AES_KEY, $iv = AES_IV) {
return openssl_decrypt(
base64_decode($str), 'aes-128-cbc',
base64_decode($key), OPENSSL_RAW_DATA,
base64_decode($iv)
);
}
引用来自“回去干活”的评论
能有多快呢?随便一个真正的编译型语言甩你几条街.Kotlin,java,swift,golang 这几个语言才是趋势.
引用来自“福嘞娃”的评论
汇编,C语言 CPP 随便一个不秒杀你这些伪编译语言,还真正编译语言,说出这种话就表示你还是个菜鸟生成一个包含100万个元素的关联数组(字典/映射),PHP7的耗时仅为Node7的1/3,就连PHP5都比Node7要快.
测试内容主要包含时间戳获取,字符串拼接,关联数组生成这几个开发中经常用到的操作.
https://static.oschina.net/uploads/space/2017/0507/114545_l2Gp_561214.png
Java实现同样逻辑要比PHP7稍快的话,需要大量的内存,比如1个GB,而PHP只需82MB左右.
所以,PHP性能真的足够应付大多数使用场景了.
很多吹Golang的其实只是喜欢Google而已,爱屋及乌罢了,毫无理性可言.
引用来自“回去干活”的评论
能有多快呢?随便一个真正的编译型语言甩你几条街.Kotlin,java,swift,golang 这几个语言才是趋势.
引用来自“苦寒竹”的评论
Kotlin,java,swift,golang好,你用他们做网站就好了。估计等你项目上线,公司就解散了。引用来自“回去干活”的评论
能有多快呢?随便一个真正的编译型语言甩你几条街.Kotlin,java,swift,golang 这几个语言才是趋势.
引用来自“回去干活”的评论
能有多快呢?随便一个真正的编译型语言甩你几条街.Kotlin,java,swift,golang 这几个语言才是趋势.