Password
openssl如何解密密碼
我正在學習關於 linux 和 php 的加密和解密。所以我對 openssl 以及它如何生成密碼雜湊有三個問題。
1-所以說我用linux命令生成了一個密碼
openssl passwd
我的第一個觀察是,每次我生成一個雜湊,它都是不同的!這是為什麼?是因為鹽嗎?這是我的第一個問題。
2-現在我的第二個問題是關於測試這個密碼。假設我想測試這個密碼的正確性並得到一個二進制答案,無論它是否正確。我如何使用 openssl 做到這一點?如果我的問題沒有意義,那有什麼
openssl passwd
用?3-如果我使用雜湊加密我的密碼
openssl passwd
,並且每次添加隨機鹽時,openssl 如何解密它(或任何其他程序)?謝謝你。
openssl 用算法和鹽加密你的密碼。如果您沒有提供鹽,則選擇隨機。
鹽在生成的雜湊中給出。
例如
openssl passwd -1 foo $1$pyuddMjp$3.deTnHdrVVVLoh5zkQ0B.
在哪裡
- 1 是協議(此處為 md5)
- pyuddMjp 是鹽
如果我想驗證你是否知道 passwd(即 foo),我需要使用 passwd 選項和 salt 來比較生成的雜湊值。
- x=bar
openssl passwd -1 -salt pyuddMjp $ x $ 1 $ pyuddMjp $ kNkQHWoF8WVh7Oxvae5YX1
- x=foo
openssl passwd -1 -salt pyuddMjp $ x $ 1 $ pyuddMjp $ 3.deTnHdrVVVLoh5zkQ0B。