SALT在密码后附加或在密码之前的位置?

当您使用GNU / Linux时,密码(主要)在MD5和SHA中编写
操作系统在对密码进行加密之前将SALT附加到该密码以避免字典加密。

我的问题是,在密码之前或之后,SO是如何附加SALT的?

例如,我的密码是: peter2011编写它之前,它确实:

saltpeter2011peter2011salt?

提前致谢。


我不知道你是否错过了我的问题,但我不是问Linux如何存储他的密码,我问的是如何引用它,我的意思是:

encrypt_in_md5(saltpeter2011)encript_in_md5(peter2011salt)

我知道/ etc / shadow文件存储为$ salt&encripted_pa​​ssword

提前致谢!


这比这更复杂一点,涉及多轮附加和散列。 最好只使用crypt(3)并让系统处理它。


这并不像你想象的那么简单。

首先盐的使用方式取决于所使用的散列函数。 你提到了MD5,所以我们将采取这种情况。

您必须在glibc源代码中查看glibc / crypt / md5-crypt.c文件中的答案。

在那里你会发现,它首先做了md5(KEY $ 1 $ SALT),然后做md5(KEYSALTKEY),然后以奇怪的方式将它们混合在一起。 然后基于密钥,salt和之前的结果进行更奇怪的迭代,最后在完成一些更多的字节混合之后。


如果您正在实施该系统,则完全取决于您。 根本不重要。

很可能unix做$1$SALTpeter2011

链接地址: http://www.djcxy.com/p/52853.html

上一篇: Where is the SALT attached to the password, AFTER or BEFORE the password?

下一篇: Python get arguments for partial functions