在不记录明文情况下,如何比对密码相似性
一些网站在修改密码的时候,会提供相似性建议,如果存储明文密码,当然可以想象是怎么实现。
如果是加密后的密文,怎么比对两者的相似性?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
一些网站在修改密码的时候,会提供相似性建议,如果存储明文密码,当然可以想象是怎么实现。
如果是加密后的密文,怎么比对两者的相似性?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(8)
都加密了 就没法比对两者的相似性
鱼和熊掌不可兼得。
有一種同态加密,可以加密的同時,允許基本字符串操作,但是看不到明文。
可以運算就可以對比,只不過對比的也只能是對字符串運算的性質。比如 aaaa 和 bbbb 一樣,平移對稱性和反轉對稱性。但你只看到性質,看不到是 a 還是 b。(要是連 a 還是 b 都能分辨,那也跟沒加密一樣了)
不過這種加密想必也不會太強。。。用途和你說的類似,就是在網站不知道明文的時候,允許基本的運算。用在隱私但不敏感的情況還好,用在密碼上。。。算了把。
更新:所謂相似,就是在某種運算下不變。換個詞叫對稱性。
对于一个合格的加密算法,无法对比加密后密文的相似性,但是……密文是可以解密的啊……可以存密文需要的时候再解开啊……
不过话说这么做的网站就真的知道你密码的明文了,离他们远点吧。
相似性建议?意思是提示你的新密码和老密码相似度吗?哪个网站?
这不就说明网站知道用户的明文密码呀,太流氓了
我可以固定一个账号的salt不变,这样我就可以对比密文来实现这个了
或者说我存明文密码的hash,反正hash不可逆……
这个分为两个部分来解答
第一,你修改密码的时候告诉你,你新密码与原密码相同(大多用于找回密码的场景),这个很简单的,假设这个网站使用了32位MD5加密后存储你的密码,那么你输入新的密码后,依然使用32位MD5进行hash计算,与数据库已有记录记性比较,发现hash值一样,那么就判断你新旧密码是一样的.(注意,举例用MD5是为了方便描述,事实上还有很多中加密方式比MD5更加安全,但是不影响我们的结论)
第二,你设置密码的时候验证你的密码是否安全,这个实际上并不是服务器在读取你的密码和判断,实际上是网站加载了脚本来根据你的输入来判断,这个判断是在你浏览器上执行的,当你的输入符合预定的规则后,浏览器将这个密码发送给服务器,服务器加密后保存
另外,上面两点都提到了,浏览器无论如何都是需要将你的密码发送给服务器,而你的密码至少是需要让服务器能"看"一眼
在这个过程中,比较严密的网站也会在浏览器本地进行基本的加密,包括不限于base64等双向解密的算法,并且配合https防止信息窃取
个人理解,可以比对新旧密码是否相同,通过比对加密密文。
如果能够比对相似性,那应该是不安全的加密方法。
局部敏感哈希Local sensitive hash。simHash是其中一个LSH