이 질문에 이미 답변이 있었거나 답변이 생각보다 간단했다면 사과드립니다. 하지만 다음 내용을 이해할 수 없는 것 같습니다.
문자열에서 md5를 생성하려고 할 때 사용할 수 있습니다.
echo -n "string" | md5sum | cut -f1 -d' '
또는
echo -n "string" | openssl md5
결과는 제가 예상한 32자가 아닌 33자(사용됨 wc -c
)입니다.
그래서 몇 가지 질문이 있습니다.
- md5sum과 openssl 모두 후행 공백을 추가하는 이유는 무엇입니까?
- 줄 바꿈이나 공백 없이 md5 해시를 생성하는 다른 방법이 있습니까?
- 후행 공백이 정말 중요합니까?
다들 감사 해요.
답변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 %]