时间:2021-07-01 10:21:17 帮助过:41人阅读
加密不同于密码,加密是一个动作或者过程,其目的就是将一段明文信息(人类或机器可以直接读懂的信息)变为一段看上去没有任何意义的字符,必须通过事先约定的解密规则才能将信息转换回有意义的可读信息,通过加密可以防止非授权的信息窃取。
PHP加密函数(推荐学习:PHP编程从入门到精通)
PHP的加密函数有crypt()、 md5() 和sha1() 这3种, 其中crypt() 用于单向加密, 所谓的单向加密就是将需要加密的内容进行加密之后, 无法将密文转换成为可读的内容, 因此单向加密的应用范围较狭窄, 一般用于用户名认证和密码输入等情况; 当用户进入系统时,只需要将密文口令输 入,经过系统验证与存储的口令一致, 即可通过。
md5()和sha1()属于哈希算法,它是不可逆的一种算法,通过截取任意一段的初始信息,将其进行转换,所得到的内容就是哈希值,且长度固定。 这样即使信息丢失, 对哈希值进行分析也是无意义的,因为它与原来的信息并无直接联系, 因此具备较强的加密功能。md5() 使用了MD5散列算法, 将一个长度不固定的信息转换为128位的信息摘要。
sha1() 函数使用了SHA-1的散列算法,其原理与md5() 类似。
md5() 和sha1() 经常用于验证信息的完整性, 即通过计算文件的哈希值来验证文件是否被修改,因此在PHP中还需要两个函数来对哈希值进行计算, md5_file() 和sha1_file(), 一旦发现计算出的哈希值与原始值不同,就可以判断文件遭到了修改。
这3种函数虽然操作简单,但是都是不可逆的, 无法对密文进行解读;但是在更高层次的加密工作中,这些简单的加密函数的加密效果就显得有些捉襟见肘了。
加密总是与安全密不可分,而每个PHPer都必须将应用安全作为必要的设计思路融入代码中,以下是一些最佳实践的建议。
不要再使用MD5,不要使用sha1,基本上已经没有破解难度了。
请使用 password_hash来哈希密码(php 版本大于等于5.5,小于 5.5 请使用 password_compat 库),由于 password_hash函数已帮你处理好了加盐,而且作为盐的随机字串已通过加密算法成为了哈希的一部分,password_verify()函数会自动将盐从哈希中提取出来,所以你无需考虑盐的存储问题。
通信接口的签名,请使用非对称算法对签名秘钥进行加密, 并对秘钥设置有效期,定期更换。
以上就是php是否可以加密部署的详细内容,更多请关注Gxl网其它相关文章!