質問: 現状advapi.dllにて下記のように宣言しながらhashを行っています。 ``` Private Declare Function CryptAcquireContext Lib "advapi32.dll" Alias "CryptAcquireContextA" _ (ByRef phProv As Long, ByVal pszContainer As String, ByVal pszProvider As String, _ ByVal dwProvType As Long, ByVal dwFlags As Long) As Long ``` 今回VB.netへと移行するにあたって既存ユーザーのhashの値を保ったまま移行を行おうと考えています。 vb.net及びWindowsServer2016には該当のDLLがなく、 hashの実装は下記変数を利用して行っています。 ``` 'ハッシュ用 Dim hashSHA512 As New System.Security.Cryptography.SHA512CryptoServiceProvider ``` ですが同じ値にすることが出来ません。 該当dllに依存せず全く同じ値のロジックを作成することは可能でしょうか。 どうぞよろしくお願いいたします。 旧VB6ソースはこのページを参考に作られています。
回答: advapi32.dllを使わず Dim hashSHA512 As New System.Security.Cryptography.SHA512CryptoServiceProvider を使うことで解決しました。 問題点は 現状のソースはhash化した最終系を16進数文字列で出力していたこと 新しいものは文字列として出力していた為、実装部分に相違がありました。 ソースを読み込めば気が付けるものでした。 限られた情報しか提示できず申し訳ありませんでした。 ご回答してくださった皆様ありがとうございました。