SALT在密码后附加或在密码之前的位置?
当您使用GNU / Linux时,密码(主要)在MD5和SHA中编写
操作系统在对密码进行加密之前将SALT附加到该密码以避免字典加密。
我的问题是,在密码之前或之后,SO是如何附加SALT的?
例如,我的密码是: peter2011在编写它之前,它确实:
saltpeter2011或peter2011salt?
提前致谢。
我不知道你是否错过了我的问题,但我不是问Linux如何存储他的密码,我问的是如何引用它,我的意思是:
encrypt_in_md5(saltpeter2011)或encript_in_md5(peter2011salt)
我知道/ etc / shadow文件存储为$ salt&encripted_password
提前致谢!
这比这更复杂一点,涉及多轮附加和散列。 最好只使用crypt(3)
并让系统处理它。
这并不像你想象的那么简单。
首先盐的使用方式取决于所使用的散列函数。 你提到了MD5,所以我们将采取这种情况。
您必须在glibc源代码中查看glibc / crypt / md5-crypt.c文件中的答案。
在那里你会发现,它首先做了md5(KEY $ 1 $ SALT),然后做md5(KEYSALTKEY),然后以奇怪的方式将它们混合在一起。 然后基于密钥,salt和之前的结果进行更奇怪的迭代,最后在完成一些更多的字节混合之后。
如果您正在实施该系统,则完全取决于您。 根本不重要。
很可能unix做$1$SALTpeter2011
。
上一篇: Where is the SALT attached to the password, AFTER or BEFORE the password?