2016-04-20 17 views
-3

データベースのパスワードを解読して電子メールの回復に送ることができます。ここで私のパスワードを暗号化するコードです。VB.NETでMD5の復号化FORM DATABASE

Dim des As New TripleDESCryptoServiceProvider 
Dim md5 As New MD5CryptoServiceProvider 

'we need to make hash function 

Function md5hash(ByVal password) 
    Return md5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(password)) 



End Function 

'now we can create function by using this has 

Function encrypt(ByVal strings, ByVal key) 
    des.Key = md5hash(key) 
    des.Mode = CipherMode.ECB 

    Dim buffer = ASCIIEncoding.ASCII.GetBytes(strings) 

    Return Convert.ToBase64String(des.CreateEncryptor().TransformFinalBlock(buffer, 0, buffer.length)) 

End Function 

、ここではそれは私が自分のパスワードを解読するためのデータベースからパスワードを取得するために何をすべきか

Dim cs As New Functions 
    Dim strText As String = newpassword.Text 
    Dim bytHashedData As Byte() 
    Dim encoder As New UTF8Encoding() 
    Dim md5Hasher As New MD5CryptoServiceProvider 
    Dim md5 As New md5 
    Dim data1 As String 
    data1 = md5.encrypt(newpassword.Text, "This is key") 
    Dim data2 As String 
    data2 = md5.encrypt(oldpassword.Text, "This is key") 


    If cs.checklogin(oldpassword.Text, newpassword.Text) = False Then 
     If cs.checkusername(UserName.Text) = True Then 
      If cs.checkpass(data2) = True Then 
       If cs.changepass(data1, UserName.Text) = False Then 
        MessageBox.Show("Password changed successfully.") 
        bytHashedData = md5Hasher.ComputeHash(encoder.GetBytes(strText & newpassword.Text)) 
        UserName.Text = "" 
        oldpassword.Text = "" 
        newpassword.Text = "" 
       Else 
        MessageBox.Show("Something Went wrong!") 
       End If 
      Else 
       MessageBox.Show("Old password is incorect!") 
      End If 
     Else 
      MessageBox.Show("Username not found!") 
     End If 

     Else 
      MessageBox.Show("We strictly comply completing all required fields.") 
     End If 
End Sub 

を暗号化する方法です。

+0

まず、パスワードとしてMD5を使用しないでください。それは安全ではありません。理想的には、独自の認証コードを作成しないでください。業界の専門家が作成したコンポーネントを使用します。第二に、MD5は一方向ハッシュです。すべてのハッシュ値が同じ結果になるいくつかの値があります。だから、それを "解読"することは意味がありません。第3に、「データベースのパスワードを解読して電子メールの回復に送る」という意味が明確ではありませんが、パスワードを平文で電子メールで送信することについて話している場合は、しないでください。一回限りのリセットをメールで送信することは、一つのことですが、実際のパスワードはありません。 –

答えて

1

MD5は暗号化ではなくハッシングです。理由のハッシングの大部分は、これが可逆的ではないために使用されます。つまり、一度ハッシュされると、あなたのパスワードは決して回復されることはありません。ユーザーからのパスワードを受け取り、保存したハッシュとハッシュ値を比較するだけで、正確であることを伝えることができます。

つまり、MD5は、ほとんどのコメントに記載されているように、単独で使用するには非常に貧弱なアルゴリズムです。

電子メールパスワード 'recovery'はパスワードをリセットすることです。 1つのアプローチは、パスワードリセットフォームを提示するユーザに送信するURLを構築するために、別々の時間制限付きハッシュを生成することです。ハッシュが一致する場合は、そのフォームを使用して受け入れ、次にハッシュします(これがオプションの場合はbcryptに切り替えます)。ユーザーが提供する新しいパスワードを保存します。

+0

私のパスワードをデータベースから解読する他の方法はありませんか? –

+0

MD5のパスワードを解読しようとする方法がありますが、それは私が取り組むものではありません。ここでの基本的な誤解は、あなたの現在のパスワードが暗号化されていないことです。暗号化は意図的に可逆です。それらはハッシュされ、ハッシュは元に戻すことができません。 – kungphu