3

だから、私はこのエントリをLinuxシャドウファイルに持っています

google.:$1$8KdNUQ4R$ZYyUXVGhvLgVNpfqus.GX/::1:0:1:1:::

このユーザーのパスワードはcom

私が理解しているように、$1$それはmd5を使用してハッシュされています。 8KdNUQ4R塩です。ZYyUXVGhvLgVNpfqus.GX/ハッシュ化されたパスワードそのものです。

私が混乱しているのは、オンラインで見つけた md5 ジェネレーターが 32 文字の長さの 16 進値を生成することですが、この場合のハッシュされたパスワードは 22 文字の長さしかなく、16 進ではありません。

指定されたソルトcomを使用するには、どのような手順を実行する必要がありますか?ZYyUXVGhvLgVNpfqus.GX/

編集

だから、私は私の答えを見つけました。私の問題は、md5 の代わりに md5crypt を使用する必要があったことです。

4

1 に答える 1

5

特定のパスワードのハッシュを計算する必要がある場合は、crypt(3) を使用します。

#include <iostream>
#include <unistd.h>

int main()
{
   std::cout << crypt( "com", "$1$8KdNUQ4R" ) << std::endl;
   return 0;
}

取得方法を知りたい場合は、salt + password の md5 ハッシュの結果を base64 で文字列に変換します。

slava@bird:~$ g++ crypt.cpp -lcrypt -o crypt_com
slava@bird:~$ ./crypt_com 
$1$8KdNUQ4R$ZYyUXVGhvLgVNpfqus.GX/
于 2013-03-01T19:46:10.037 に答える