Berbagi Cerita, Catatan, Pengalaman ngoding dan Secangkir Teh Hangat.

Monday, January 30, 2017

Enkripsi Sederhana

Tutorial sederhana untuk membuat library Enkripsi dan Dekripsi Text.

Enkripsi adalah sebuah metode untuk menyembunyikan pesan dalam bentuk karakter atau simbol acak. Sebenarnya tidak bisa dibilang acak atau random, Enkripsi itu punya patern / pola, dengan adanya patern atau pola pesan yang ter ekripsi bisa di dekripsi, 


Q : Jadi dengan tau paternnya kita bisa dekripsi suatu text yang di enkripsi ?
A : Belum tentu.

Jangan mentang - mentang tau polanya kita berharap bisa men-dekripsi suatu text.
"KUNCI", kunci adalah kata kunci untuk kita bisa meng-deskripsi suatu text.


Ada banyak Pola / Patern Enkripsi ada yang kuncinya sudah konstanta ada yang kuncinya dinamis dan ada yang konstanta sekaligus dinamis.

Buat yang udah pernah lihat film enigma pasti paham, setelah mesin deskripsinya berhasil dibuat pesan yang dikirim oleh tentara lawan tetap belum bisa di dekripsi, sampai akhirnya alan turing menyadari bahwa kuncinya selalu berubah setiap hari.

tutorial ini sebagai informasi dasar / contoh simple proses enkripsi.

catatan penting :
Untuk kuncinya tidak bisa karakter khusus (ŸÚæ׏{©žš¡~) dan kawan - kawannya, cuma bisa A-Z, 0-9, !@# dkk.



Langkah 1 : Buat Project Class Library.


Untuk function / method yang sering kita gunakan dan jarang berubah / bisa diseting (dinamis ) parameternya sebaiknya dibuatkan librarynya, sehingga kedepannya kita tidak perlu menulis ulang.

Langkah 2 : Buat Class Enkripsi

Didalam class ini akan terdapat 2 method, Enkripsi dan Dekripsi.


Langkah 3 : Buat Method Enkripsi

    Private Const Key1 = "040783!@#$%" 'ini bebas selain simbol2 special.
    Public Shared Function EncryptString(ByVal Key2 As String, ByVal StringtoEncrypt As String) As String
        Dim Result As String = String.Empty
        Dim c As Double = 0
        Dim StringBuffer = String.Empty
        'StringtoEncrypt = string yang mau dienkrip + kunci 1
        StringtoEncrypt = StringtoEncrypt & Key1
        If Not Key1 = String.Empty And Not Key2 = String.Empty And Not StringtoEncrypt = String.Empty Then
            'lakukan penggulangan dari 1 ke panjang string yang mau diencrtyp
            For i = 1 To Len(StringtoEncrypt)
                'isi c dengan hasil conversi karakter ke i dari stringtoencrypt
                c = Asc(Mid(StringtoEncrypt, i, 1))
                'c diisi oleh c (diatas) + konversi (karakter ke (hasil (sisa i bagi jumlah key) +1))
                'misal key = PQRS = len(4)
                'misal i = 2
                '2 mod 4 = 0 + 1 = 1
                'mid(PQRS,1,1)
                'asc(P)
                'c + hasil konversi asc(P)
                c = c + Asc(Mid(Key2, (i Mod Len(Key2)) + 1, 1))
                'StringBuffer = StringBuffer + hasil konversi (c)
                StringBuffer = StringBuffer & Chr(c)
            Next
            Result = StringBuffer
        End If
        Return Result
    End Function

Langkah 4 : Buat Method Dekripsi

     Public Shared Function DecryptString(ByVal Key2 As String, ByVal StringtoDecrypt As Object)
        Dim result As String = String.Empty
        Dim c As Double
        Dim StringBuffer = String.Empty
        If Not Key2 = String.Empty And Not StringtoDecrypt = String.Empty Then
            'lakukan penggulangan dari 1 ke panjang string yang mau didecrtyp
            For i = 1 To Len(StringtoDecrypt)
                'isi c dengan hasil konversi karakter ke i dari stringtodecrypt
                c = Asc(Mid(StringtoDecrypt, i, 1))
                'c diisi oleh c (diatas) - konversi (karakter ke (hasil (sisa i bagi jumlah key) +1))
                'misal key = PQRS = len(4)
                'misal i = 2
                '2 mod 4 = 0 + 1 = 1
                'mid(PQRS,1,1)
                'asc(P)
                'c - hasil konversi asc(P)
                c = c - Asc(Mid(Key2, (i Mod Len(Key2)) + 1, 1))
                StringBuffer = StringBuffer & Chr(c)
            Next
            result = StringBuffer
        End If
        Return Replace(result, Key1, "") ' hapus Key1 dengan perintah replace
    End Function


Langkah 5 : Build Project.



Seteleh dibuild akan terbentuk 1 file dll "JCrypt.dll" atau nama sesuai nama project.





Langkah 6 : Menambahkan reference / library kedalam project.

Setelah kita membuat libary selanjutnya adalah menggunakannya di project2 yang kita buat.



Langkah 7 : Menggunakan Library Enkripsi


Textbox yang digunakan disample ini adalah JTextbox (Textbox Custom Control : soon).


Imports JCrypt
Public Class Form1

    Private Sub tnormal1_KeyDown(sender As Object, e As KeyEventArgs) Handles tnormal1.KeyDown
        If e.KeyCode = 13 Then
            tenkripsi1.Text = JCrypt.JCrypt.EncryptString(tkey.Text, tnormal1.Text)
            tdekripsi1.Text = JCrypt.JCrypt.DecryptString(tkey.Text, Convert.ToString(tenkripsi1.Text))
        End If
    End Sub
End Class


IDE : Visual Studio 2013 (dibawah ini juga bisa)
Framework : .NET 4.5 

Sample dll : download  (ada messageboxnya)

sekian dulu berbaginya, jangan lupa like, komen, share.
jangan lupa sertakan link blog ini sebagai sumber kalo kalian mau paste tutorial ini di blog kalian.

Selamat Mencoba.





.
Share:

0 comments:

Post a Comment

Powered by Blogger.

Ads 468x60px

Freelancer

Jaka Pradesa

Data Entry and Softwares

E: j.r.pradesa@gmail.com

Hire me on Freelancer.com

Social Icons