PHP SHA512に適合するC#でSHA512ハッシュを再現するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1419069

  •  07-07-2019
  •  | 
  •  

質問

質問は自明です。私は多くのサイト、多くの方法、多くのエンコーディングを試しましたが、一致させることができませんでした。

文字列「asdasd」を作成しようとしています一致。 ( http://www.fileformat.info/tool/hash.htm?text= asdasd

役に立ちましたか?

解決

これを試してください

using System.Security.Cryptography

public static string HashPassword(string unhashedPassword)
{
    return BitConverter.ToString(new SHA512CryptoServiceProvider().ComputeHash(Encoding.Default.GetBytes(unhashedPassword))).Replace("-", String.Empty).ToUpper();
}

他のヒント

BitConverterは問題なく動作します...

var testVal = "asdasd";
var enc = new ASCIIEncoding();
var bytes = enc.GetBytes( testVal );

var sha = new SHA512Managed();
var result = sha.ComputeHash( bytes );

var resStr = BitConverter.ToString( result );
var nodash = resStr.Replace( "-", "" );

nodash.Dump();

(512ビットハッシュに固定、申し訳ありません:)

PHPのCrypt関数に一致する.NETハッシュ関数を取得しようとして数時間費やしました。楽しくない。

CryptのPHP実装はbase64エンコードされた文字列を返し、複数のハッシュ反復を行わないため、複数の課題があります(たとえば、Cryptのデフォルトは5000です)。 CryptSharpが見つかるまで、いくつかのライブラリ。 PHPの(または元のC)関数に似たソルトを受け入れます(例:" $ 6 $ round = 5000 $ mysalt" )。末尾の$はありません。また、ソルトを提供しない場合、ランダムなソルトが自動生成されることに注意してください。

CryptSharpは次の場所にあります。 http://www.zer7.com/software.php?page=cryptsharp

優れたバックグラウンドリーディング: - http://www.akkadia.org/drepper/SHA-crypt.txt

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top