私はリモートでMySQLデータベースに接続しましたJoomla! 1.5Visual Basic .NET 2010でMySqlConnectorを使用しているWebサイト。Visual Basic .NETでのJoomlaパスワード認証
これで、単純な形式でMySQLクエリから取得した値からユーザーのパスワードを認証しようとしています。
forums.joomla.orgという便利なスレッドが"Joomla password MD5 & VB.NET MD5"というタイトルで見つかりましたが、そこにあるコードスニペットでは正しくないハッシュが生成されています。
Joomla DBでどのようにpasswords are encrypted(MD5ハッシュと "salt"を使用)の別の便利なJoomlaのフォーラムスレッドです。
Imports System.Text
Imports System.Security.Cryptography
...
Private Function JoomlaUserAuth(ByVal Password As String, ByVal EncryptedPassword As String) As Boolean
'HashedPassword:Salt = value from Joomla DB
Dim Values() As String = Split(EncryptedPassword, ":")
Dim HashedPassword As String = Values(0)
Dim Salt As String = Values(1)
Dim NewHashedPassword As String = GetHash(Password & Salt)
Return NewHashedPassword.Equals(HashedPassword)
End Function
Private Function GetHash(ByVal StringToHash As String) As String
Dim md5 As New MD5CryptoServiceProvider()
Dim encoder As New UTF7Encoding()
Dim encStringBytes As [Byte]()
encStringBytes = encoder.GetBytes(StringToHash)
encStringBytes = md5.ComputeHash(encStringBytes)
Dim strHex As String = String.Empty
For Each B As Byte In encStringBytes
strHex &= String.Format("{0:x2}", B)
Next
Return strHex
End Function
結果が「NewHashedPassword」および「HashedPassword」が正しいパスワード/ DBは、暗号化されたパスワードの組み合わせを使用して、非常に異なっていることである:ここ
は、コードの修正版です。何か案は?文字列= GETHASH(パスワード&パスワード&塩)
うーんとして
薄暗いNewHashedPassword: –
Joomlaのパスワードはデフォルトでは塩漬けされていますが、塩を使わないで手動で作成しても機能するはずです。他のユーザーを手動で作成しましたか? – udjamaflip