Password

openssl如何解密密碼

  • September 24, 2020

我正在學習關於 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。

引用自:https://unix.stackexchange.com/questions/174077