用什么方法给PHP密码加密最安全
说到PHP里密码存到数据库里,方法可是有不少!聊聊常见的几个:
- 直接用MD5加密,这是最基础的,不过安全性有点“呵呵”,毕竟现在破解技术挺厉害的。
- MD5双重加密,就是给密码套两层“茧”,虽然比单纯MD5强点,但也不算很顶尖啦。
- 跟常量混淆加密,比如给密码拼个固定字符串,增加破解难度,还是挺有用的。
- 加动态盐随机值,这个超推荐!简单来说就是给密码加个“独一无二”的小尾巴,比如这样写:
$password = hash('md5', $_POST['password'].$staticSalt.$dynamicSalt);
这样一来,哪怕两个用户密码一样,存进数据库就是不同的值,黑客要解密就麻烦多了。
特别提醒,别觉得MD5就完事儿了,现在黑科技不少,破解MD5库也是分分钟的事儿。所以,最好多次加密或者用更安全的hash算法(比如bcrypt),但用MD5加动态盐,还是入门级比较安全的做法。
另外,像有些新手朋友在用MD5加密密码时,可能会出现密码插不进去数据库的情况,原因经常是SQL语句写得不对。给你个小tips,SQL字段名用反引号括起来,避免和数据库关键字冲突,比如:
INSERT INTO `table` (`username`, `password`, `email`, `date`) VALUES ('".$user."', '".md5($pw)."', '".$em."', '".$date."');
这样写的话,执行就妥妥的了!

PHP网站后台登陆密码忘记后应该怎么办以及sqlite数据库怎么加密和防止下载
哎呀,后台密码忘了,那怎么办呢?别慌!解决办法其实挺简单的,有两招:
-
数据库里直接改密码
- 首先,登录你的数据库管理界面(比如phpMyAdmin啥的)
- 找到存管理员信息的表,名字可能是v9_admin或者类似的
- 找到密码字段,通常存的是MD5加密后的字符串,你需要按照网站加密规则,生成新密码的MD5码,替换旧的那条数据
- 保存后,密码就重置成功啦! -
直接删掉某个安装文件,重新安装网站
- 这个比较粗暴,就是把网站当新装,其实就是重置密码的变相方法,但要小心数据备份哦!
另外,咱们说说SQLite数据库的安全问题,特别是“怎么防止用户把数据库下载走吧”。
-
创建空数据库的两种方法:
- 通过IO流创建空数据库文件,比如FileStream写个零字节数据库
- 通过SQLite的API创建文件,比如SQLiteConnection.CreateFile方法 -
给SQLite数据库加密码
- 你可以直接在创建数据库的时候给它设个密码,这样别人没密码可真进不去!
- 比如调用API时传入密码参数,数据库文件存盘时就加密啦! -
防止数据库被下载
- 最重要的是放数据库的目录不要直接暴露给外网访问
- 服务器设置权限,只允许网站程序访问,用户没权限,也就拿不到数据库了
综上,无论是密码加密还是数据库安全,咱都得花点心思,毕竟黑客可没在旁边睡觉。

相关问题解答
-
用PHP写密码加密,为什么只用MD5不够安全呢?
其实呀,MD5现在算是有点“年纪大”了,随着技术发展,黑客能用各种手段秒破解MD5。况且,单纯的MD5没盐很容易撞库,简单密码根本挡不住。所以我们通常推荐加点动态盐,或者用更高级的加密方式,比如bcrypt,那才叫真·靠谱! -
后台密码不小心忘了,直接改数据库密码会不会很复杂?
放心啦,这操作其实简单的很!只要你能进数据库管理界面(比如phpMyAdmin),找到存管理员密码的表,跟着加密规则改个密码字符串,保存就OK。就是个“开保险箱”的手艺不过几分钟,不敢自己动的话,请叫懂行的朋友帮忙,嘿嘿。 -
SQLite数据库加密操作难吗?普通开发者能用吗?
说实话,SQLite加密其实不算太难,很多库和工具都有现成接口,直接传个密码参数就完事儿。你只要稍微研究一下文档,用现成API创建加密的数据库文件,基本就能轻轻松松搞定啦!别担心,不是啥高深莫测的黑魔法。 -
怎么避免用户直接下载我网站的数据库文件呢?
这事儿得靠“防火墙+权限”来搞定,简单点就是:不要把数据库文件放在能被网页访问的目录下,服务器权限设置只让网站程序访问,用户没权限访问。再不济,可以用服务器的配置规则屏蔽数据库文件访问路径。有时候加密数据库文件,也是多一层保护,效果加倍呢!
新增评论