Openssl
生成 md5 時的尾隨空格
如果已經回答了這個問題,或者答案比我意識到的更簡單,我深表歉意,但我似乎無法弄清楚以下內容:
當我嘗試從字元串生成 md5 時,要麼使用
echo -n "string" | md5sum | cut -f1 -d' '
或與
echo -n "string" | openssl md5
結果不是 32 個字元,如我所料,而是 33 個(使用
wc -c
)。所以,我有幾個問題:
- 為什麼 md5sum 和 openssl 都添加尾隨空格?
- 是否有另一種方法可以生成沒有尾隨換行符或空格的 md5 雜湊?
- 尾隨空格真的很重要嗎?
謝謝大家。
這是32個字元!這
md5sum
是在末尾添加換行符。你可以像這樣擺脫它:% echo -n string | md5sum|awk '{print $1}'|wc -c 33 % echo -n $(echo -n string | md5sum|awk '{print $1}')|wc -c 32
或者你可以這樣做:
% echo -n $(md5sum <<< 'string'|awk '{print $1}')|wc -c 32
您可以判斷其中一個命令何時添加換行符,因為 32 個字元的字元串將顯示在其自己的行上。如果沒有換行符,它應該總是這樣顯示:
[prompt %] echo -n $(md5sum <<< 'string'|awk '{print $1}') b80fa55b1234f1935cea559d9efbc39a[prompt %]