Kamis, 30 September 2010

5

[VB] Belajar Dasar Enkripsi Metode XOR

  • Kamis, 30 September 2010
  • Nurkholish Ardi Firdaus
  • Share
  • Xor, apakah itu?
    Xor adalah salah satu operator logika yang terdapat di sebagian besar bahasa pemrograman. Merupakan singkatan dari Exclusive OR.
    Xor memang jarang digunakan, namun dibalik semua itu ternyata operator xor mempunyai kegunaan lain, yaitu untuk
    enkripsi!.

    Berbeda dengan operator logika lainya seperti AND dan OR, Xor hanya akan bernilai True jika hanya salah satu operand nya bernilai True,
    Untuk lebih jelasnya, simak contoh di bawah ini:

    Opernad1 Xor Opernad2 = Hasil

    True Xor True = False
    False Xor False = False
    True Xor False = True
    False Xor True = True



    Lihat, ternyata Xor hanya bernilai True jika salah satu operand nya bernilai True, jika kedua operadnya bernilai True atau kedua
    operand nya bernilai False, Xor akan bernilai False.
    Sebenarnya Xor merupakan operator gabungan antara AND dan OR, sebenarnya kita juga membuatnya, beginilah Rumus Xor:

    a XOR b = (a AND (NOT b)) OR ((NOT a) AND b)



    Ternyata begitulah rumus XOR sebenarnya sehingga Xor hanya akan bernilai True jika hanya salah satu operand nya bernilai True.
    Sepertinya haya itu yang bisa saya jelaskan tentang operator Xor, selanjutnya kita akan membahas tentang kegunaan operator Xor untuk enkripsi.
    Dalam enkripsi Xor, kita juga perlu menentukan Kunci dari enkripsi tersebut, beginilah caranya:

    Sebelum_Enkripsi XOR Kunci = HasilEnkripsi



    Mari kita bermain dengan kode biner. Perlu anda ketahui bahwa Kode biner 0 adalah bernilai False (Salah),
    dan 1 adalah bernilai True (Benar).
    Misalnya Sebelum_Enkripsi bernilai 1 dan kunci bernilai 1 maka:

    1 Xor 1 = 0



    Dalam kasus diatas hasil enkripsi bernilai 0 (False).
    Namun jika kita menengkripsi suatu variable, bagaimana cara kita men dekripsinya?
    Tenang, jangan panik karena disinilah kelebihan dari operator Xor!. Jika hasil enkripsi kita enkripsi kembali menggunakan kunci yang sama,
    maka hasilnya ternyata merupakan hasil sebelum enkripsi, tidak percaya?

    True Xor True = False



    Diatas saya ibaratkan True pertama merupakan variable sebelum enkripsi, True kedua adalah kuncinya dan False merupakan hasil enkripsi.
    Jadi untuk mendekripsinya, kita bisa melakukan enkripsi ulang terhadap hasil enkripsi menggunakan kunci yang sama

    False Xor True = True



    Lihat, hasil deskripsi adalah True! sama persis dengan variable sebelum enkripsi bukan?
    Ok, mari kita terapkan konsep yang sudah kita ketahui tersebut kedalam code VB.


    Deklarasi:

    1 Form
    3 Text Box
    2 Command Button


    Susun seperti dibawah ini:



    Source code:

    Private Sub Command1_Click()
    Text2.Text = Basic_XOR_EncryptDecrypt(Text1.Text, Text3.Text)
    End Sub

    Private Sub Command2_Click()
    Text1.Text = Basic_XOR_EncryptDecrypt(Text2.Text, Text3.Text)
    End Sub

    Private Sub Form_Load()

    Command1.Caption = "Enkripsi!"
    Command2.Caption = "Dekripsi!"
    Text1.Text = "text untuk enkripsi"
    Text2.Text = "text untuk deskripsi"
    Text3.Text = "Kunci"

    End Sub




    ' Fungsi enkripsi-dekripsi
    Private Function Basic_XOR_EncryptDecrypt(ByVal str As String, ByVal key As String)

    Dim StrEnc As String

    For i = 1 To Len(str)
    StrEnc = StrEnc & Chr(Asc(Mid(str, i, 1)) Xor Asc(key))
    Next

    Basic_XOR_EncryptDecrypt = StrEnc

    End Function

    ' 2010 crowja



    Fungsi enkripsi-dekripsi diatas masih sangat sederhana, untuk memperumitnya agar tidak mudah di crack,
    kita bisa melakukannya dengan berbagai cara, seperti menambahkan algoritma aritmatika, melakukan looping
    dan sebagainya, seperti contoh fungsi Basic_XOR_EncryptDecrypt yang sedikit diperumit:

    ' Fungsi enkripsi-dekripsi
    ' 2010 crowja
    Private Function Basic_XOR_EncryptDecrypt(ByVal str As String, ByVal key As String)

    Dim StrEnc As String
    Dim XoredKey As Long

    ' melakukan enkripsi pada kunci
    For i = 1 To Len(key)
    XoredKey = XoredKey Xor Asc(Mid(key, i, 1))
    Next

    ' melakukan enkripsi pada str
    For i = 1 To Len(str)
    StrEnc = StrEnc & Chr(Asc(Mid(str, i, 1)) Xor XoredKey)
    Next

    Basic_XOR_EncryptDecrypt = StrEnc

    End Function


    Mudahkan, anda bisa melakukan berbagai kombinasi enkripsi lagi dengan berbagai cara seperti menambahkan
    algoritma aritmatika dan lain-lain.

    Semoga bermanfaat
    Jangan Lupa Komentar Yaa..
    Related Posts Plugin for WordPress, Blogger...

    5 Komentar Untuk “[VB] Belajar Dasar Enkripsi Metode XOR”

    Anonim mengatakan...

    Sabtu, 26 Februari 2011 pukul 00.25.00 WIB Reply To This Comment

    bagus sekali..
    ada gak program java untuk menghitung bilangan faktorial


    Nurkholish Ardi Firdaus mengatakan...
    Sabtu, 26 Februari 2011 pukul 11.52.00 WIB Reply To This Comment

    @Anonim seep,, sbenarnya ada sh.. tp q blum kenal sma bahasa java.. maklum msih du2k di bngku sma., jd msih fkus sma pljaran.. trlebih lg mau ujian nh...hehehe


    yunifa Isni Adha mengatakan...
    Minggu, 08 Mei 2011 pukul 23.39.00 WIB Reply To This Comment

    mksh atas postingnya bisa membantu saya mengerjkan tugas :))


    Nurkholish Ardi Firdaus mengatakan...
    Senin, 09 Mei 2011 pukul 12.17.00 WIB Reply To This Comment

    @yuyun sma2 mba yuyun... seneng bs mmbantu....^_^


    Anonim mengatakan...

    Senin, 12 Desember 2011 pukul 23.58.00 WIB Reply To This Comment

    wah membantu sekali. btw bisa dijelaskan yg lebih rinci nggak ini cara kerja syntaxnya yg fungsi enkripsi-dekripsi?


    Posting Komentar

    Berikan komentar positif tentang artikel yang sederhana ini niscaya sobat akan mendapatkan balasannya. Hehehe

    Subscribe