명령줄에서 SHA512 비밀번호 해시를 생성하는 방법

명령줄에서 SHA512 비밀번호 해시를 생성하는 방법

Linux에서는 SHA1을 사용하여 비밀번호 해시를 생성할 수 있습니다 sha1pass mypassword. 해시를 생성할 수 있는 유사한 명령줄 도구가 있습니까 sha512? Bcrypt와 같은 문제입니다 PBKDF2.

답변1

Red Hat 배포판(예: Fedora, CentOS 또는 RHEL)에서 이 명령에는 mkpasswdDebian/Ubuntu 버전에 일반적으로 포함되는 것과 동일한 스위치 세트가 포함되어 있지 않습니다.

노트:이 명령은 mkpasswd실제로 패키지의 일부이므로 expect피해야 합니다. 이 명령 중 하나를 사용하여 해당 패키지가 속한 패키지를 찾을 수 있습니다.

$ yum whatprovides "*/mkpasswd"
-or-
$ repoquery -q --file */mkpasswd

$ repoquery -q --file */mkpasswd
expect-0:5.43.0-8.el5.x86_64
expect-0:5.43.0-8.el5.i386

rpm패키지를 찾기 위해 패키지를 설치할 필요가 없기 때문에 두 가지 방법을 모두 사용하는 것이 좋습니다 */mkpasswd.

해결책

이 문제를 해결하려면 다음 Python 또는 Perl 문을 사용하여 SHA-512 비밀번호를 생성할 수 있습니다. 다음은 소금에 절인 것입니다.

파이썬(>= 3.3)

$ python -c 'import crypt,getpass; print(crypt.crypt(getpass.getpass(), crypt.mksalt(crypt.METHOD_SHA512)))'

-또는 스크립트-

$ python -c 'import crypt; print(crypt.crypt("somesecret", crypt.mksalt(crypt.METHOD_SHA512)))'

Python(2.x 또는 3.x)

$ python -c "import crypt, getpass, pwd; \
             print(crypt.crypt('password', '\$6\$saltsalt\$'))"

$6$saltsalt$qFmFH.bQmmtXzyBY0s9v7Oicd2z4XSIecDzlB5KiA2/jctKu9YterLp8wwnSq.qc.eoxqOmSuNp2xS0ktL3nh/

참고: $6$는 sha512를 나타냅니다. 알고리즘을 지정하는 이 방법에 대한 지원은 운영 체제 수준 crypt(3) 라이브러리 함수(보통 libcrypt에 있음)에 대한 지원에 따라 달라집니다. 파이썬 버전에 의존하지 않습니다.

진주

$ perl -e 'print crypt("password","\$6\$saltsalt\$") . "\n"'
$6$saltsalt$qFmFH.bQmmtXzyBY0s9v7Oicd2z4XSIecDzlB5KiA2/jctKu9YterLp8wwnSq.qc.eoxqOmSuNp2xS0ktL3nh/

이 예에서 비밀번호는 "password" 문자열이고 솔트는 "saltsalt"입니다. 두 예제 모두 사용$6$이는 암호화에서 SHA-512를 사용하려는 것을 의미합니다.

답변2

예, 당신은 그것을 찾고 있습니다 mkpasswd. 그것은 (적어도 데비안에서는) 패키지의 일부입니다 whois. 이유는 묻지 마세요...

anthony@Zia:~$ mkpasswd -m help
Available methods:
des     standard 56 bit DES-based crypt(3)
md5     MD5
sha-256 SHA-256
sha-512 SHA-512

불행히도 내 버전은 최소한 bcrypt를 지원하지 않습니다. C 라이브러리가 이 작업을 수행한다면 그렇게 해야 합니다(맨페이지에서는 강도를 설정하는 -R 옵션을 제공합니다). -R은 sha-512에서도 작동하지만 PBKDF-2인지는 확실하지 않습니다.

bcrypt 비밀번호를 생성해야 하는 경우 Crypt::Eksblowfish::BcryptPerl 모듈을 사용하여 매우 간단하게 수행할 수 있습니다.

답변3

OpenSSL은

openssl passwd -6

도움말은 다음과 같이 말합니다.

$ openssl passwd --help
Usage: passwd [options]
Valid options are:
...
 -6                  SHA512-based password algorithm

일관된 출력을 얻으려면 솔트를 지정할 수 있습니다.

openssl passwd -6 -salt <YOUR_SALT>

출력은 다음과 유사합니다.

$6$YOUR_SALT$q/oDR4twC1ik4RoxTJJtX.3MjenHVapkMaBbq2NcRHGQjqhIWRNcEVitYZhyIx98D7lF7qs0vLTq17X0nEr8I.

포함: 6알고리즘을 나타내는 "$"(위의 "-6"), 합계 YOUR_SALT"$", 마지막으로 SHA512 합계 사이.

답변4

다음 명령을 실행하세요:

$ /sbin/grub-crypt --sha-512

그런 다음 해시하려는 단어를 입력하세요.

관련 정보