IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:password hashing

共 2 篇相关文章

IT 累计浏览 2,162

[PHP 最佳实践]如何处理用户的密码

这篇讲的是 PHP 开发中处理用户密码的安全演进路径。文章从近年来频发的“拖库”事件切入,点明密码作为最隐私的数据,绝不能抱有侥幸心理。它直接指出了许多初级开发者的误区——仅满足于使用 MD5 等简单散列算法,并生动解释了这些算法为何“不及格”:它们本质上是单向散列而非加密,且容易被黑客利用预计算的彩虹表或字典暴力破解。 文章的核心在于层层递进地揭示更安全的做法。它强调了加“盐”(随机字符串)的必要性,即为每个用户的密码在散列前拼接独特随机值,大幅增加字典攻击的难度。但即便如此,面对当今高性能计算机每秒数十亿次的计算能力,传统的 MD5/SHA 系列算法仍显脆弱。 因此,作者引出了专门为密码存储设计的 bcrypt 算法,其计算成本极高,暴力破解速度被限制在每秒几千次,安全性呈指数级提升。文章不仅讲清楚了原理,还提供了直接可用的 PHP 内置函数(如 `password_hash` 和 `password_verify`)示例,并进一步推荐了 Yii 2 框架中更完善的安全组件封装。最终目的是帮助开发者建立从原理到实践的正确密码处理观念,而不仅仅是停留在“知道不能存明文”的层面。

IT 累计浏览 6,658

网站密码存储方案比较

这篇讲的是在GPU算力飞速发展的今天,网站该如何安全地存储用户密码。作者对比了几种主流的不可逆加密方案。 传统的一次MD5或加盐的两次MD5方案,虽然使用广泛,但面对如今动辄超CPU数十倍算力的GPU集群,暴力破解已成可能,安全性堪忧。 文章重点分析了两种更安全的现代方案:PBKDF2和bcrypt。PBKDF2(如Django 1.4默认的实现)通过成千上万次迭代的HMAC-SHA256运算,大幅增加暴力破解的时间成本。bcrypt则在实现上更为简洁,但需注意它不支持超过55字符的密码。 作者指出,两者各有拥趸,没有绝对的优劣,选择取决于具体场景。文中提供了Django和PHP的PBKDF2实现代码,方便读者直接参考。对于正在构建用户系统的开发者来说,这是一份清晰实用的方案选型指南。