Openssl

生成 md5 時的尾隨空格

  • January 9, 2013

如果已經回答了這個問題,或者答案比我意識到的更簡單,我深表歉意,但我似乎無法弄清楚以下內容:

當我嘗試從字元串生成 md5 時,要麼使用

echo -n "string" | md5sum | cut -f1 -d' '

或與

echo -n "string" | openssl md5

結果不是 32 個字元,如我所料,而是 33 個(使用wc -c)。

所以,我有幾個問題:

  1. 為什麼 md5sum 和 openssl 都添加尾隨空格?
  2. 是否有另一種方法可以生成沒有尾隨換行符或空格的 md5 雜湊?
  3. 尾隨空格真的很重要嗎?

謝謝大家。

這是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 %]

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