1,114 瀏覽數

Linux command – openssl password

SSL (Secure Socket Layer) 是 Netscape 所提出來的資料保密協定,採用了 對稱式加密,One Way Hashes,以及 非對稱式等加密演算法再加上 CA (Certification Authority) 來確定身份所組成的.

  • Symmetric Algorithms 對稱式加密的一種,而所謂的對稱式加密就是加密以及解密都是使用同一支鑰匙 (single Key),DES, 3DES, Blowfish, RC2, RC4, RC5, IDEA, CAST5 皆是採用對稱式加密來運作
  • One Way Hashes 主要會產生一組固定長度字串 (fingerprint or message digests),這組字串用來比對原資料是否遭到修改,md2, md5, mdc2, rmd160, sha, sha1, haval, crc-32 皆是採用 One Way hash.
  • RSA 為 Asymmetric (Public Key) Algorithms (非對稱式) 或稱公鑰密碼演算法的一種.而所謂的非對偁式加密會使用兩把公與私鑰 (Public/Private Key), public key 會當成加密用, Private key 就會當解密用
  • CA (Certification Authority) 公正的第三者,主要用來驗證公鑰的真假.

OpenSSL 是一隻加密的工具可以應用在 Secure Sockets Layer (SSL v2/v3) 與 Transport Layer Security (TLS v1) 上.

# openssl speed 可以用 SSL 的加解密演算法來看你系統的效能 (CPU 與 memory 效能測試),請參考 http://benjr.tw/94131

這邊來看看如何透過這 # openssl passwd 一支工具讓 密碼 產生相對應的雜揍 (Hash).

# openssl passwd [options] [passwords]

-crypt standard Unix password algorithm (default)
-1 MD5-based password algorithm
-apr1 MD5-based password algorithm, Apache variant
-salt string use provided salt
-in file read passwords from file
-stdin read passwords from stdin
-noverify never verify when reading password from terminal
-quiet no warnings
-table format output as table
-reverse switch table columns

將密碼透過 standard Unix password algorithm 產生一組雜湊 (Hash)

[root@localhost ~]$ openssl passwd -crypt "password"
nNany7wy2drdQ

將密碼透過 MD5 產生一組雜湊 (Hash)

[root@localhost ~]$ openssl passwd -1 "password"
$1$WMKQEqPU$YYcqiFfk0f6UWGS0L6hrp1
[root@localhost ~]$ openssl passwd -1 "password"
$1$4LwDUa7g$8gQ2Ui1Z.XTkLjpxL9.WQ1
[root@localhost ~]$ openssl passwd -1 "password"
$1$/PFIu1sj$xidGwe6eFQP5.2NUtA3R00

不過會發現每次出來的密碼都不一樣,系統預設會使用不同的 salt (可以讓密碼更為安全),salt 會在加密前先對密碼做一次手腳 (密碼 -> 加 Salt -> 加密 ).
-salt 參數方式如下:
DES 的 slat 限制2個字元,範圍是 [a–z , A–Z , 0–9./]
md5 的 slat 限制8個字元,範圍是 [a–z , A–Z , 0–9./]

[root@localhost ~]$ openssl passwd -crypt -salt "A." "password"
A.xewbx2DpQ8I
[root@localhost ~]$ openssl passwd -1 -salt "ABCDEFGH" "password"
$1$ABCDEFGH$hGGndps75hhROKqu/zh9q1

發表迴響