Linux系統生成共享密鑰(PSK)的4種方法

最近更新時間 2020-02-16 12:58:17

預共享密鑰(PSK)也被稱為共享祕密是用作加密雙方預定義的字符串。也可用於驗證 L2TP/IPSec 連接的 Unicode 字符串。可以配置“路由和遠程訪問”來驗證支持預共享密鑰的 VPN 連接。

在Linux系統中可以通過命令來生成共享密鑰。

1. 使用OpenSSL命令

OpenSSL 是一個開放源代碼的軟件庫包,可以使用這個包來進行安全通信,避免竊聽,同時確認另一端連線者的身份。OpenSSL提供了各種加密功能,可使用 rand 參數生成隨機字符串,並通過 base64 處理輸出共享密鑰,入下所示:

openssl rand -base64 32
KrJ5jHHhFCfz0c2X20S9+Nxsypal7IJbMr8wXjjjmcc=
openssl rand -base64 64
xCeIPbrkrNh7ZzAmaQB7KMQoXGbX7sOYE/pmjGvjxKf2Bxf628/YqBJfSHdN0UjU
B84a4cuII7UvocYM1twFvw==

2. 使用GPG命令

GPG 是 OpenPGP 提供數字加密和簽名服務的命令行工具。可以使用其 --gen-random 選項來生成強大的 PSK,並通過 base64 編碼對其進行處理,如圖所示:

gpg --gen-random 1 32 | base64
oiQovAMpxb8maZoyPpsQSY+g4Y1VIy6FQnPCWi4E4zI=
gpg --gen-random 2 70 | base64
jpTFTTMlR3hVeUMTMWGjTWWDTrnt0Dt1Jnr4oaNjv6tuUDbs4KtUvnVKKWb2s+BjOo69FWtlY1hd
FYW8q8Qc17hiHaWt9Q==

其中10、70表示字符串長度。

3. 使用偽隨機數生成器

可以使用 Linux 中的任何偽隨機數生成器,例如 /dev/random 或 /dev/urandom,如下所示。head 命令的 -c 選項有助於生成字符數。

head -c 35 /dev/random | base64
7cVUCNp+pILocW6E9EuodjM547oMEBFcMdS/TmdKldyjrXc=

4. 使用date和sha245sum命令

可以將 date 和 sha256sum 命令一起使用,創建PSK,如下所示:

date | sha256sum | base64
MDcwMzJlMGE4N2JmOGY1YWZjMTk2YzA5NDZkOTAwM2VhOWFkMTFhMTZhODE4MmVmYWRlOWNkZjA3
Y2Q1NTM1YSAgLQo=
date | sha256sum | base64 | head -c 45; echo
ZTYxM2M1OTQ5Nzc4OWNiYmIzMzVjNTlkNTAyOTVhOTM1N
rss_feed