태그 보관물: command-line

command-line

터미널에서 직접 MD5 해시를 얻는 방법은 무엇입니까? 들어 문자열을 abcdefg해시

터미널에서 직접 MD5 해시를 어떻게 얻 습니까?

예를 들어 문자열을 abcdefg해시 하고 싶습니다 . 현재 md5sum 명령은 파일 이름 만 입력으로 허용합니다. 간단히 다음 줄을 입력하고 모든 작업을 완료하고 싶습니다.

md5sum abcdefg
output: ac54bcf346e578feb46888b3ecd2344f

어떻게하면 되나요?



답변

다음과 같이 말할 수도 있습니다.

~$ echo -n Welcome | md5sum
83218ac34c1834c26781fe4bde918ee4  -

기본적으로 @enzotib에서 설명한 것과 동일한 작업을 수행하지만 약간 더 간단합니다.


답변

매우 간단합니다. stdin을 받아들이므로

md5sum <<<"my string"

쉘이 추가 한 후행 줄 바꿈을 피하려면 다음을 수행하십시오.

printf '%s' "my string" | md5sum

답변

$ echo -n 123456 | md5sum | awk '{print $1}'
e10adc3949ba59abbe56e057f20f883e

쉘 스크립트를 작성할 수 있습니다.

예를 들어, 스크립트 이름은 md5.sh입니다.

#!/bin/bash

echo   -n   $1 | md5sum | awk '{print $1}'

권한 실행 :

 chmod +x md5.sh

그때:

$ md5.sh 123456
e10adc3949ba59abbe56e057f20f883e

시스템이 macOS 인 경우 이 스크립트를 수정해야합니다.

$ echo -n 123456 | md5 | awk '{print $1}'
e10adc3949ba59abbe56e057f20f883e

답변

인수없이 md5sum을 실행하면 터미널에서 입력을 읽습니다. 원하는 것을 입력하거나 붙여넣고 완료되면를 눌러 ctrl-d입력을 종료하십시오.


답변

openssl md5 filename
openssl sha1 filename

문자열 파이프의 경우 echo를 사용하여 내용

echo -n 123456 | openssl md5

답변

--helpfor에 대한 나의 빠른 찌르기는 md5sum다음 명령 을 보여줍니다.

md5sum -

그런 다음 간단한 입력을위한 프롬프트를 표시합니다. 일부 텍스트를 입력 Enter한 다음 Ctrl+ D를 사용하여 파일의 끝 md5sum을 나타내면 입력 한 원시 텍스트의 MD5를 뱉어냅니다 (포함 Enter, CR, IIRC입니다).

타이핑이 적고 배관이 없습니다! 그리고 쉘 히스토리에 평문 암호가 기록되는 것을 피하십시오! 우!

후행 CR을 원하지 않으면 (일반적으로 암호를 해시하려는 경우) + Enter전에 누르지 말고 대신 +를 두 번 입력하십시오 .CtrlDCtrlD


답변

내 스크립트 에서이 문제에 대해 알아야 할 두 가지가 있음을 발견했습니다.

  • 당신이 할 경우 그것은 중요하지 않습니다 echo "$myvariable"또는 echo -n "$myvariable"
    당신은 항상 문자열의 doubleqoutes을 사용하고 항상 같은 방법을 사용해야합니다. 그렇지 않으면 일치하지 않습니다.
  • 출력에서 예제와 같이 항상 후행 공백과 대시가 나타납니다.

    $ echo -n Welcome | md5sum
    7803ffcaea43bb81a439fde13b29bc35  -
    

그것을 없애고 코드 만 사용하려면 다음 7803ffcaea43bb81a439fde13b29bc35을 수행하십시오.echo "$myvariable" | md5sum | cut -d" " -f1