laravel加密手机号以后手机号如何做登录校验
着实是想不通了,所以来社区请教一下各位大佬,
laravel的加密同一串字符串会发生变化,因为向量iv是随机值
目前我这的情况是使用手机号作为账号登录,手机号又需要加密存进数据库,那我用户校验登录的时候应该怎么校验手机号呢?
如果是新加一个字段用来存手机号的哈希,那是不是也不能用laravel的hash而是要自己重新写一个。
关于 LearnKu
哈希加密后的值会变化,但是调用验证方法
check还是能验证通过的。 跟验证密码一个道理:注意:验证思路不是通过每次加密后的密文和数据库存储的密文进行比较的,而是通过
check方法进行验证。只能查出用户数据比对手机号是不是这个用户的
来学习一下,感觉不管怎么做都很麻烦,感觉如果是我会在用户注册更高后 在redis里存一下手机号 用户id,加密向量,登录时根据手机号去,取这些的值,然后和数据库手机号对比 和数据库密码对比 应该可以实现你的需求 就是很麻烦 应该有更好的方法
手机号还是好的呢, 有的字段需要加密,还需要支持查询, 这种的不会呢
对称加密啊,比如md5
直接用
openssl_encrypt和openssl_decrypt进行加解密。m.toutiao.com/is/Us6AEHA/ - 加密后的敏感字段还能进行模糊查询吗?该如何实现? - 今日头条
除了 密文 外,再弄加一个对应的 hash 列,查询的时候把传入的手机号进行 hash ,然后去数据库根据 hash 拿到就行了。
另外,hash 时最好要加上个 slat,这个 slat 最好不要是固定值,可以与原文有关也行。
举个例子:
手机号真实数据可以使用加密,然后再增加一个 md5的手机号信息,检索可以md5之后检索,取出来的话就解密出来。md5加密可以加个盐嘛
目前有两只解决方法,一是重写一下内置的加密,变成固定向量的。二是加一列哈希,这两种方法在便利以及安全程度上考虑我觉得替换一下原方法更好一些
为啥不采用 SM4 加密,可加可解,你这样存起来手机号以后都不用啦?
加解密使用非对称加密就行
1.只考虑你目前的需求
2.后续扩展