当前位置: 首页 > 面试题库 >

与MYSQL sha1相关的“盐”是什么?

劳麒
2023-03-14
问题内容

与MYSQL sha1相关的“盐”是什么?我不知道与sha1密码加密相关的盐是什么?有人可以解释一下吗?


问题答案:

盐是添加到您想要以一种哈希方式加密的密码(或其他机密)中的值。这意味着它可以在密码之前,之后或内部,只要它的位置和值与给定提供的密码一致。

它的作用是减轻字典攻击(基本上是不加盐就预先加密的常见密码的字典)从被用来“猜测”一种单向密码,只要攻击者不知道哈希。如果每个密码都有不同的哈希值,那么攻击者将很难创建一个针对破解密码而优化的字典(他们将需要一个字典来存储每个单独的盐,他们还需要知道盐在每个密码中的位置)。

当然,要使所有这些都适用,攻击者必须首先将密码的哈希值放在首位。这与通过某些输入提示猜测密码来攻击密码无关。

特别是关于MySQL,如果您在哈希密码时提供了一个盐,请确保记录该盐在某处。然后,当用户尝试进行身份验证时,您可以将记录的盐值与密码结合起来(crypt例如在致电期间),如果结果哈希匹配,则他们输入了正确的密码。(请注意,密码的哈希值绝不会逆转;这是一种方式。)



 类似资料:
  • 有人能帮我理解testProguardFile的用法吗。假设我在gradle build文件中有调试buildType及其配置如下: 那么为什么我要提供另一个名为test-proguard-rules的proguard规则文件呢。专业测试?如果我理解正确,当我进行仪器测试时,会生成一个单独的apk,但是如果我只进行单元测试,情况是否也是这样? 我希望能够运行“单元测试”(不是仪器测试),但让单元测

  • 我试图更深入地理解java.util.Collection和java.util.Map,但我对HashSet的功能有些怀疑: 所以,我的问题是:如果一个HashSet总是有一个Hashtable在后台工作,那么每次我们使用HashSet.add()方法向HashSet添加一个新元素时,HashSet都应该将它添加到它的内部Hashtable中。但是,哈希表要求一个值和一个键,那么它使用什么键呢?它

  • 有一段时间没写加密了,还忘了一些东西。 我记得,为了使使用相同键的相同数据的输出不同,我想在字节数组的一端对数据进行salt处理,然后使用CBC模式,这样salt就可以完成它的任务。 但是我想不起来加密的方向是什么了,应该把salt放在0的位置,然后把要加密的数据放在它后面,还是把salt放在最后?我知道CBC模式工作最好的时候,盐是第一块在链。 我使用的是AesCryptoServiceProv

  • ChatGPT是由总部位于旧金山的公司 OpenAI构建。该公司负责创建GPT-3和DALL-E2 等软件

  • 我有一个使用的项目。现在我想使用我通过CMake集成的预构建tensorflow C-API。但现在我得到了以下错误: libPROTOBUF FATAL谷歌/PROTOBUF/存根/common.cc:61]此程序需要3.9.0版的协议缓冲区运行库,但安装的版本是2.6.1。请更新您的库。如果您自己编译了程序,请确保您的头文件与您的链接时间库来自同一版本的协议缓冲区。(版本验证在“bazel-o

  • 本页列出了所有Apache遵守的相关标准,并伴有简要描述。 除了下面列出的参考信息,下列资源也值得看看: http://purl.org/NET/http-errata - HTTP/1.1 勘误表 http://www.rfc-editor.org/errata"http://ftp.ics.uci.edu/pub/ietf/http/"> http://ftp.ics.uci.edu/pub/