加密到底能干嘛?说实话,以前我也不太当回事。机密性,数据被截了也是乱码,抓包的人干瞪眼。完整性,改没改一验就知道。身份认证堵住中间人攻击。不可否认性在金融系统里简直是救命的东西。前年一个做电商的朋友,数据库密码明文存着,被拖库后用户全平台被撞,赔了一百多万,公司差点没死在上面。
PHP里别自己瞎折腾。password_hash()自动加盐,彩虹表没用。我第一次还傻乎乎自己写加盐逻辑,写了一晚上,结果发现它自带,当时想抽自己。openssl_encrypt()选AES-256-GCM,快,大文件也不喘气。hash_hmac()做API签名校验,之前有个项目接口被撞好几万次,半夜运维打电话骂人,加上签名才消停。对称加密一把钥匙,快但怕丢;非对称公私钥分离,安全但慢得想砸键盘。怎么说呢,实践中都是配合着用。不对,应该说,跟HTTPS的TLS握手一个路子。
千万别踩坑。MD5、SHA1存密码,现在GPU一秒几十亿次哈希,等于裸奔。自己发明算法更是找死。我见过一个团队把密钥硬编码在代码里,代码泄漏那天,技术总监蹲在机房地上哭,真事。还有只加密不校验签名,数据被改了都不知道。前阵子一家金融科技公司用HTTP传用户数据,被罚了四千万,CTO进去了。选对函数,绕开这些坑,慢慢就上手了。你看,我刚刚还在写加密类,突然想起来,密钥还没生成……
#PHP #PHP安全 #加密技术 #避坑指南 #干货#Web安全 #数据加密 #后端开发
微信扫一扫赞赏作者喜欢作者