我需要向网络服务器发出请求,我从会员那里获得的唯一信息是帐号和密码。帐号无法加密,因为我需要该信息来查找成员记录。我想在将密码传递给 Web 服务器之前对其进行加密。但是我没有任何密钥来加密会员密码,应用程序可以被逆向工程。我的问题是您可以使用该密码加密密码吗?就像 MySecretKey 使用 MySecretKey 作为密码进行加密一样。即使加了盐,我也不知道这是否可能。有什么建议吗?
您可以使用该密码本身加密密码吗?
信息安全
加密
2021-09-12 01:05:52
2个回答
要回答您的具体问题,那么是的,当然,您可以使用另一条数据作为密钥来加密一条数据,即使数据和密钥恰好相同。但这会实现什么?解密将很困难:您需要密钥才能解密,并且在解密之前您没有密码......
“自加密”可以被视为一种散列函数:某些输入数据的确定性变换,以一种可以反转的方式。散列是密码存储的正确框架(实际上,密码没有被存储,只是一个密码验证令牌)。然而,众所周知,增长自制散列函数很困难。当密码学家想要构建一个散列函数时,他们会花费大量时间,因为他们需要确保该函数是安全的,而仅仅通过查看它是无法知道的。
此外,安全散列本身还不够。你需要一个 SLOW 和 SALTE 哈希。这个主题在这个网站上已经被打死了好几次,比如看这个问题或者那个问题。综合答案是:使用 bcrypt。
我想在将密码传递给 Web 服务器之前对其进行加密。
我认为这就是您的问题的真正意义所在。使用 SSL。不要滚动您自己的尝试置换密码的方法。如果它在传输过程中使用 SSL 加密并与散列版本进行比较(最好是适合密码的东西,如Tom Leek 指出的bcrypt),那么您已经设置了最佳实践。
其它你可能感兴趣的问题