md5 생성 시 후행 공백

md5 생성 시 후행 공백

이 질문에 이미 답변이 있었거나 답변이 생각보다 간단했다면 사과드립니다. 하지만 다음 내용을 이해할 수 없는 것 같습니다.

문자열에서 md5를 생성하려고 할 때 사용할 수 있습니다.

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


또는

echo -n "string" | openssl md5


결과는 제가 예상한 32자가 아닌 33자(사용됨 wc -c)입니다.


그래서 몇 가지 질문이 있습니다.

  1. md5sum과 openssl 모두 후행 공백을 추가하는 이유는 무엇입니까?
  2. 줄 바꿈이나 공백 없이 md5 해시를 생성하는 다른 방법이 있습니까?
  3. 후행 공백이 정말 중요합니까?


다들 감사 해요.

답변1

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

관련 정보