Tuesday, December 23, 2008

Encrypt Password Menggunakan MD5


MD5 : adalah salah satu algoritma untuk mengenkripsi, untuk lebih jelasnya bisa klik disini :), jadi intinya disini adalah bagaimana mengenkripsi sebuah password di database menggunakan algoritma MD5 di vb.net, sehingga user lain tidak bisa mengetahui password tiap user di database.

Untungnya msdn dari visual studio sudah menyediakan example untuk mengenkripsi menggunakan MD5, sekarang tinggal integrasi dengan modul yang sudah dibuat, dibawah ini adalah contoh mengintegrasikan source code untuk mengencrypt menggunakan algoritma MD5 di VB.Net/ Visual Basic 2008 :

1. buat modul baru
2. copy paste source code berikut
Imports System
Imports System.Security.Cryptography
Imports System.Text
3. tambahkan function untuk mengenkripsi string yg dipassing
Function getMd5Hash(ByVal input As String) As String
Dim md5Hasher As MD5 = MD5.Create

Dim data As Byte() = md5Hasher.ComputeHash _
(Encoding.BigEndianUnicode.GetBytes(input))

Dim sBuilder As New StringBuilder()

Dim i As Integer
For i = 0 To data.Length - 1
sBuilder.Append(data(i).ToString("c"))
Next i

Return sBuilder.ToString()

End Function
4. tambahkan function berikut untuk mengcompare / mencocokkan, string yang diinput dan mereturn boolean(true or false), function ini berguna ketika login
Function CekMD5Hash(ByVal input As String, ByVal hash As String) As Boolean

Dim hashOfInput As String = getMd5Hash(input)

Dim comparer As StringComparer = StringComparer.OrdinalIgnoreCase

If 0 = comparer.Compare(hashOfInput, hash) Then
Return True
Else
Return False
End If

End Function
5. langkah terakhir tinggal panggil function dimodul ini dengan form-form yang sudah dibuat :

ex: form login (memanggil function CekMD5Hash) untuk mencocokan string yang diinput, contoh :

if CekMD5Hash(PasswordTextBox.Text, password) = True then
MsgBox("Login Sukses")
end if
ex: form user (memanggil function getMd5Hash) untuk mengencrypt string yang diinput dan menginsertnya ke database, contoh :
MskaryawanTableAdapter1.InsertQuery(TextBox1.Text, TextBox2.Text, ComboBox1.Text, TextBox3.Text, TextBox4.Text, TextBox5.Text, getMd5Hash(TextBox6.Text), TextBox7.Text, TextBox9.Text)



----- Code'It, Write'It, Share'It, Love'It -----
----------- IT Field It's My Passion -----------

Correct Me If I'am Wrong

No comments: