密码加密一般用不可逆的哈希算法。常用的有md5(不建议,容易被破解)、sha1、sha256、sha512
哈希 | 长度(bit) | 数据库长度(byte) |
md5 | 128 | 16 |
sha1 | 160 | 20 |
sha256 | 256 | 32 |
sha512 | 512 | 64 |
除了使用hash,我们还需要salt(盐)。
因为相同的字符串hash后得到的字符串是相同的。
sha512(sha512(password)+salt)
这就是最好的加密方式了。
salt需要存储在数据库,每个用户的salt都不相同。我们可以用用户的登录名称当作salt,这样很方便,当然,也容易被别人获得。
我们也可以把加密后的password$salt 用一个符号连接存入密码字段。需要salt时从数据库取出来密码,用split转为数组,然后取出salt字段。