어떻게 아치 리눅스 커맨드 라인을 통해 md5 해시를 만드시겠습니까?


7

Arch Linux에서 명령 줄을 사용하여 암호 용으로 md5 해시를 하나만 만들려면 어떻게해야합니까? 물론 md5는 사용할 수없는 안전한 암호 해싱 알고리즘이 있음을 알고 있습니다. 그러나 이것은 실험의 일부일뿐입니다.


4
"보안"전에 "more"라는 단어를 제거 할 수 있습니다. 마찬가지로, 보안 해시가 있거나 (또는 ​​최소한 보안 성이있는 해시) MD5는 그 중 하나가 아닙니다.
Todd Wilcox

2
단지 기록을 위해서, SHA-256과 같은 안전한 암호화 해시조차도 직접적으로 좋은 것을 만들지 않습니다. 암호 해시시. 적어도 네가 좋아할만한 것을 필요로한다는 것을 안다. 무지개 - 테이블 공격을 물리 칠 소금 , 그리고 내가 알고 있지 않은 다른 문제가 있다고 확신한다.
Peter Cordes

답변:


18

간단히 echo 그것 md5sum.

첫 번째 결과는 해시를 생성하기 전에 문자열 끝의 개행 문자를 고려합니다.

$ echo P@ssword1 | md5sum
0a43c426e3d6764fe1f3f7cbb3579eba  -

그렇지 않으면 @AFH 개행 문자를 사용하지 않으려면 다음을 수행하십시오.

$ echo -n 'P@ssword1' | md5sum
d106b29303767527fc11214f1b325fb6  -

9
여기에는 암호와 함께 줄 바꿈 문자가 포함됩니다. 이것은 질문자가 원하는 것일 수 있지만 필요하지 않은 경우 echo -n 'P@ssword1' | md5sum. 쉘에 해석 할 문자가 포함되어있는 경우 따옴표를 암호에 포함 시켰습니다. 나는 작은 따옴표를 사용하여 확장을 금지하는 경우 $.
AFH

7
당신이 해시가 아니기 때문에 잘못된 결과를 리턴 할 것입니다. P@ssword1, 그러나 P@ssword1<Newline>. 용도 echo -n P@ssword1 | md5sum 대신에.
phihag

@AFH 귀하의 의견에 대한 답변을 확대했습니다.
Unfundednut

5
"첫 번째 결과는 해시가있는 개행 문자를 반환합니다." 아니요, 해시를 생성 할 때 개행 문자를 고려할 것입니다. 이는 매우 다른 것입니다!
Lightness Races in Orbit

내 일이 끝났어. 옳은.
Unfundednut

11

답변 중 어느 것도 echo -n 'password' | …영구 저장 장치에 대한 암호, 즉 기록을 쓸 것입니다.

명령을 공백으로 접두어로 사용하여 쉘에 따라이를 피할 수 있습니다 (쉘에 대해 테스트). 이것이 어떻게 처리되는지 쉘 문서를 읽으십시오.

또는 md5sum 달리기로 직접 md5sum, 암호를 입력 한 다음 Ctrl + D . 치지 마라. 들어가다 비밀 번호와 Ctrl + D , 당신이 해시에 개행을 포함하고 싶지 않다면.


1
당신은 너무 잘 시작 했어요. (+1).하지만 비행기 비밀번호를 파일에 써야한다고 말한 후에도 (-1) 8-O (얼마나 많은 보안 구멍이 열리는 지 ...). 변수가 BTW 인 경우 $HISTCONTROL 에 설정 됨 ignorespace 또는 무시하다 선행 공백으로 입력 한 모든 명령은 기록에 저장되지 않습니다 ... 그럼에도 불구하고 항상 직접 테스트하는 것이 좋습니다. (+1 다시 :-)) ...
Hastur

@Hastur 좋은 지적. 파일에 기록하는 것은 일반적으로 파일에 기록을 쏟아 넣는 것보다 낫습니다. 파일을 단순히 연결 해제 할 수 있기 때문입니다 (설정에 따라 히스토리와 작동하지 않을 수 있습니다.) - 종료시 기록을 다시 기록하는 셸을 보았습니다 ). 그러나 파일 권한을 암호로 쓰는 것은 단순히 vim이나 무언가를 실행하는 것만 큼 쉽지 않습니다 (적어도 umask를 설정하고 싶습니다. 그리고 그 구멍이 남았는지 확실하지 않습니다). 나는 대답에서 그 부분을 제거했다.
Jonas Schäfer

나는 당신의 편집을 주목한다. upvoted 나는 두 번이나 할 수는 없지만 나는 다른 것을 생각할 수있다 ...).
Hastur

8

다음은 openssl을 사용한 예제입니다.

echo -n 'stack overflow' | openssl md5
(stdin)= 481b8423202598ecfb233c5fa68caf68

Openssl은 언젠가 다른 것을 필요로한다면 몇 가지 다른 해싱 알고리즘을 구현합니다.


4

모두가 사용을 제안하는 것처럼 보입니다. echo - 적어도 대부분, 고맙게도, -n, 완화시키는 하나 (끝에 줄 바꿈을 인쇄합니다).

그러나 echo 반드시 일치하지는 않습니다. 그것은 당신이 염두에 두어야 할 많은 행동상의 단점을 가지고 있으며, 시스템들간에 호환되지 않을 수 있습니다. 그것은 더 낫다. 용도 printf 대신에 .

그러므로, 당신은

$ printf '%s' 'P@ssword1' | md5sum
d106b29303767527fc11214f1b325fb6  -
$

printf마지막에 개행을 원하면 명시 적으로 직접 추가해야합니다.

$ printf '%s\n' 'P@ssword1' | md5sum
0a43c426e3d6764fe1f3f7cbb3579eba  -
$ echo 'P@ssword1' | md5sum
0a43c426e3d6764fe1f3f7cbb3579eba  -
$

그것을 얻지 말라고 요청하는 대신에 (그리고 echo 시스템에서 똑같이 작동하며 이후에 실행됩니다).

$ echo -n 'P@ssword1' | md5sum
d106b29303767527fc11214f1b325fb6  -
$

포인트를 확장하려면 ~의 버릇 echo 위에서 언급 한 내용은 다음과 같습니다.

  • 그것은 다양한 시스템에서 다르게 작동합니다. 많은 현대 시스템 지원 -n 말하다 echo 출력을 개행 문자로 끝내지 않겠지 만, 그렇지 않을 수도 있습니다. 실제로 인쇄하려면 어떻게해야합니까? -n? 일부 구현은 실제로 설정 쉘 또는 환경에서.
  • 특수 문자로 된 문자 시퀀스 (특히 백 슬래시로 이스케이프 된 문자)를 처리하거나 처리하지 못할 수도 있습니다. 그것들을 패스워드에 넣는 것은 완전히 비합리적인 것은 아니며, POSIX는 에코의 행동에 대해 어떤 보증도하지 않습니다 (그것의 행동은 구체적입니다). 정의되지 않은 ) 첫 번째 인수가 -n 또는 인수에 백 슬래시가 포함되어 있습니다.

에코 대신에 printf를 사용하는 것에 대한 위의 링크 된 질문에 대한 답은 당신이 궁금해 할 때 더 많은 독서를위한 링크와 함께 몇 가지 더 있습니다.


"그것 (에코)에는 당신이 명심할 필요가있는 많은 행동상의 단점이 있습니다."당신이 이것을 확장 할 수 있습니까?
DavidPostill

@DavidPostill 그것에 조금 추가했습니다. 이게 더 나아 졌다고 생각하니?
a CVn

완벽한 :) 그것은 내 자신의 교육을위한 것이 었습니다 (나는 당신의 대답에 잘못된 것이 있음을 암시하고 싶지 않았습니다).
DavidPostill

@DavidPostill 걱정하지 마라. 나는 비록 그들이 최고 득표자가 아닐지라도 합리적으로 될 수있을만큼 좋은 답변을하려고 노력하고 있습니다! (필자는 필자가 글쓰기를 시작했을 때도 이것을 주목하지는 않았지만 printf가 아마도 이와 같은 것에 대한 에코보다 더 나은 선택 일지에 대한 답을 얻을만한 가치가 있다고 느꼈다.)
a CVn

그건 나도 간다 :)
DavidPostill

3

질문은 나에게 뭔가 다른 것을 제안하므로 완전을 기원합니다.

MD5 기반의 해시 암호 해싱 방법이 있습니다.이 해싱 방법은 원래 DES 기반 crypt ()를 /etc/shadow. 이제는 새로운 것으로 바뀌었지만, 야생에서 "MD5 암호 해싱"을 경험 한 경우 일반 MD5가 아닌이 MD5 암호를 사용할 수 있습니다.

이러한 MD5 기반 해시는 접두사로 표시됩니다. $1$ 당신은 다음과 같이 계산할 수 있습니다. openssl passwd -1


0

당신은 이것을 사용하여 쉽게 할 수 있습니다. echomd5sum:

 echo -n "password" | md5sum

2
없이 -n 그만큼 echo 개행 문자를 출력에 추가하므로 해시가 잘못됩니다. 예를 들어, echo -n lolwut | md5sum 결과는 다음과 같다. 05a208028929fd77cfb5b08096a837df, 동안 echo lolwut | md5sumf291ceceddd9e13a0ab68cf1829ef583.
Ivan Kolmychek
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.