jump to navigation

Encrypt / Decrypt string menggunakan algoritma symetris [ DES ] January 19, 2009

Posted by Herwin Anggeriana in ASP.net, Programming.
trackback

DES adalah suatu algoritma symetris yang digunakan umumnya untuk pengacakkan / encrypt data pada file atau suatu string, dimana pengacakkan data ini menggunakan generator yang kita kenal dengan single private key. Salah satu mekanisme encryption / decryption yang mudah digunakan adalah MemoryStream.

 

Bagaimana kita menerapkan DES dengan MemoryStream pada aplikasi ASP.net ;

 

Imports System.Text

Imports System.Security.Cryptography

 

Public Module MyCryptoLib

 

Public Function Encrypt( _

                ByVal s As String, _

                ByVal Password As String _

                ) As string

 

‘Mendapatkan setiap byte data yang akan di encrypt dan jadikan dalam bentuk array

Dim data() As Byte = Encoding.ASCII.GetBytes(s)

 

‘Menggunakan module tambahan dari CSP

Dim des As New DESCrytoServiceProvider()

 

‘Untuk mudahnya simpan array yang berisi data ke dalam key dan herwin

Dim key() As Byte

Dim herwin () As Byte

 

“Generate pengacakan

GenerateKey(Password, des.BlockSize, key, herwin)

Des.Key = key

Des.IV = herwin

‘Melakukan penyimpanan ke dalam memory menggunakan IO Stream dan hapus data temporary

Dim mout As New MemoryStream()

 

‘Panggil dan execute module encryption stream

Dim encStream As New CryptoStream(mout, des.CreateEncryptor(), CryptoStreamMode.Writes)

 

Dim I as long

 

‘Membaca setiap isi string dan simpan ke dalam stream

For I = 0 To data.length -1 Step 4096

encStream.Write(data, I * 4096, data.length – (I * 4096))

Next

 

‘Keluarkan hasil output dari stream

encStream.FlushFinalBlock()

 

‘Membuat tempat penyimpanan sementara berbentuk array untuk menampung hasil encryption

Dim result(mout.Length – 1) As Byte

 

‘Mencari byte yang pertama dalam memory

mout.Seek(0, SeekOrigin.Begin)

 

‘Membaca isinya

Mout.Read(result, 0, result.Length)

 

‘Tutup

endStream.Close()

mout.Close()

 

Return Convert.ToBase64String(result)

End Function

 

Mudah bukan..

Untuk membuat fungsi decrypt, gunakan mekanisme yang sama, hanya sedikit berbeda ketika anda memanggil module encryption.

è Des.CreateDecryptor()

Dan jangan lupa hasil decrypt-nya dikonvert / diubah dalam bentuk ASCII, agar dapat dibaca oleh manusia.

Comments»

No comments yet — be the first.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s