Pages

Showing posts with label Tips Visual Basic. Show all posts
Showing posts with label Tips Visual Basic. Show all posts

Tips Visual Basic - Enkripsi / Dekripsi (Penyandian) Password dan Teks

20 November 2010

     
tips vb - enkripsi dekripsi Dalam tips VB kali ini, kita akan mencoba menyandikan teks atau password. Penyandian sangat diperlukan, agar setiap kata-kata yang rahasia yang tidak boleh diketahui oleh orang lain bisa dengan aman disimpan baik didalam program EXE ataupun dalam file lain. Jadi kalau ada yang coba-coba membongkar file EXE atau file penting lainnya yang telah disandikan, maka orang tersebut tidak akan dengan mudah mendapatkan teks aslinya. Kecuali kalau ia memang seorang hacker yang sangat tangguh.

Banyak teknik penyandian (enkripsi) yang telah dikembangkan saat ini, mulai dari yang sangat sederhana sampai pada yang amat kompleks dan aman. Dalam tips kali ini diberikan sebuah teknik sederhana namun kiranya sudah cukup aman untuk sebuah program kecil-kecilan. Teknik ini adalah kreasi dari John Clark Craig, bersumber dari bukunya yang berjudul Microsoft Visual Basic 4.0 Developer's Workshop Edisi Ketiga. Enkripsi ini adalah simetris, artinya teks yang telah dienkripsi bisa dikembalikan ke teks asalnya (dekripsi).

Berikut ini adalah kodenya (beberapa kodenya telah saya rubah sedikit untuk penyesuaian):

Function Cipher(TXT As String, Optional A As Integer, Optional B As Integer, Optional RV As Integer)
    Static R As Long
    Static M As Long
    Static N As Long
    Const BN As Long = 32768
    Dim I As Integer, C As Integer, D As Integer
    If IsMissing(RV) = False Then R = RV
    If IsMissing(A) Then
        If M = 0 Then M = 69
    Else
        M = (A * 4 + 1) Mod BN
    End If
    If IsMissing(B) Then
        If N = 0 Then N = 47
    Else
        N = (B * 2 + 1) Mod BN
    End If
    'proses setiap karakter
    For I = 1 To Len(TXT)
        C = Asc(Mid$(TXT, I, 1))
        'modifikasi khusus teks yg bisa dibaca saja
        Select Case C
        Case 48 To 57
            D = C - 48
        Case 63 To 90
            D = C - 53
        Case 97 To 122
            D = C - 59
        Case Else
            D = -1
        End Select
        If D >= 0 Then
            R = (R * M + N) Mod BN
            D = (R And 63) Xor D
            Select Case D
            Case 0 To 9
                C = D + 48
            Case 10 To 37
                C = D + 53
            Case 38 To 63
                C = D + 59
            End Select
            Mid$(TXT, I, 1) = Chr$(C)
        End If
    Next I
    Cipher = TXT
End Function

Perhatikan teks berwarna merah di atas (parameternya), TXT adalah teks yang akan dienkripsi/dekripsi. Sedangkan nilai A, B, dan RV bisa anda ganti-ganti. Setiap perubahan nilai A,B atau RV akan menghasilkan teks hasil enkripsi yang berbeda. Jadi anda bisa mengkombinasikannya.

Karena enkripsi ini adalah simetris, maka jika teks hasil enkripsi anda masukkan kembali ke fungsi di atas, akan menghasilkan teks aslinya kembali (tentunya menggunakan nilai A, B, dan RV yang sama dengan saat mengenkripsi).

Contoh menggunakan fungsi di atas adalah seperti berikut:

txtHasilEnkripsi.Text = Cipher(txtSumber.Text, 4, 6, 9)  
txtHasilDekripsi.Text = Cipher(txtHasilEnkripsi.Text, 4, 6, 9)

Kalau sobat mau melihat file source kode beserta contohnya, bisa didownload disini. Source kode tersebut bila dijalankan, tampilannya adalah seperti pada gambar di atas.

Tips Visual Basic - Cara Membuka Sebuah Link Website dan Email

24 June 2010

    
Form Visual BasicDalam sebuah program, sebaiknya kita ikut menyertakan halaman homepage situs atau alamat email kita di dalam form Info/About agar orang lain dapat mengakses alamat homepage tersebut jika ingin mendapatkan update atau info terbaru tentang program. Namun, bagaimana caranya agar saat user meng-klik link website pada form, kemudian program browser (IE, firefox, Opera, atau yang lain) jalan secara otomatis untuk membuka link website tersebut seperti pada gambar di samping ini? Atau membuka program Outlook Express atau Thunderbird saat user meng-klik alamat email kita? Berikut ini caranya:

Teks berisi link website atau alamat email bisa menggunakan kontrol Label. Label tersebut diubah property-nya agar berwarna biru layaknya sebuah link di browser seperti gambar di atas. Selanjutnya untuk event-nya menggunakan event click. Berikut ini kodenya: (di sini saya menggunakan label bernama Label_Link dan Label_Email).

Option Explicit

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
    ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd _
    As Long) As Long

Private Sub Label_Email_Click()
    ShellExecute hwnd, "open", "mailto:tipsdaninfoku@abcdefg.com", _
    vbNullString, vbNullString, 1
End Sub

Private Sub Label_Link_Click()
    ShellExecute hwnd, "open", "http://tipsdaninfoku.blogspot.com/", _
    vbNullString, vbNullString, 1
End Sub

Pada kode di atas, kode berwarna biru adalah fungsi API Windows, kode ini harus ada agar bisa jalan. Selanjutnya kode berwarna merah adalah alamat email dan alamat website. Saat label email diklik, maka program pembuka email (yang default) akan berjalan dan membuka alamat email tersebut. Dan jika label link diklik, maka browser (IE, firefox, Opera, atau yg lain) akan berjalan membuka alamat URL tersebut. Alamat URL harus diawal dengan http:// atau https://, sedangkan alamat email harus diawali dengan mailto:.
 

Populer