我需要你的帮助,我有一个练习,做一个登录程序,并用sha-256和盐存储密码,我做了一个部分,但这里是困难的部分。我已经读过,如果使用sha-256,则无法撤消操作以确定密码。如果这是真的那么我需要用来加密密码,加密密码后,如果密码加密了怎么办? PS:我在google上搜索过。
答案 0 :(得分:0)
我们假设您的密码为El Capitan
。您将散列此密码并将其保存到您的程序。在您的登录程序中,您从用户那里获取输入,使用相同的算法对其进行散列,然后比较两个散列字符串。如果相等,则字符串相等,如果不相等,则它们不相等。此人无法确定密码是什么,并且您已经密码密码。
答案 1 :(得分:0)
您应该阅读哈希函数的工作原理。散列函数只生成一个值,这取决于您的输入。由于计算该值的公式对于特定的哈希函数(即SHA-256)始终是相同的,因此如果您知道输入(在您的情况下为密码),您始终可以生成它。因此,与密码不同,哈希函数计算的值不应该被解密。
我需要使用什么来加密密码
您不必加密密码,因为正如您所说,您无法通过了解存储在您数据库中的哈希值来撤消操作。如果您以纯文本格式知道密码,则只能获得访问权。