String Enskripsi Pake C#

Sekitar setahun yang lalu, di projek yang kita kerjakan, ada modul yang berfungsi untuk melakukan enskripsi string. Ceritanya, setiap query string yang dikirim ke suatu page akan di sandikan sehingga user tidak melihat informasi parameter yang kita kirimkan. Kode ini dibuat rekan yang sekarang sudah transmigrasi ke kantor laen dan sedikit kumodifikasi. Karena kode ini sepertinya penting di masa-masa mendatang, aku muat aja disini. Siapa tau dibutuhkan sewaktu-waktu.

Berikut adalah method untuk merubah string menjadi string yang disandikan (C#)

public static string encryptData(string strCode)
{
    string hasil = "";
    try
    {
        TripleDESCryptoServiceProvider tdcsp = new TripleDESCryptoServiceProvider();
        MD5CryptoServiceProvider strKey = new MD5CryptoServiceProvider();
        byte[] bytes;
        bytes = strKey.ComputeHash(Encoding.UTF8.GetBytes("KataKunciUntukPenyandian"));
        tdcsp.Key = bytes;
        byte[] IV = { 38, 55, 206, 48, 28, 64, 20, 15 };
        tdcsp.IV = IV;

        ICryptoTransform ict = tdcsp.CreateEncryptor();
        byte[] encText = Encoding.UTF8.GetBytes(strCode);

        MemoryStream xMemory = new MemoryStream();
        CryptoStream criptostr = new CryptoStream(xMemory,ict,CryptoStreamMode.Write);

        criptostr.Write(encText,0,encText.Length);
        criptostr.FlushFinalBlock();

        hasil = Convert.ToBase64String(xMemory.ToArray());
    }
        catch (Exception)
    {
        hasil = "x";
    }
    return hasil;
}

Sedangkan method berikut untuk mengembalikan string yang telah disandikan kembali seperti semua

public static string decryptData(string strcode)
{
    string hasil = "";
    try
    {
        TripleDESCryptoServiceProvider tdcsp = new TripleDESCryptoServiceProvider();
        MD5CryptoServiceProvider strKey = new MD5CryptoServiceProvider();
        byte[] bytes;

        bytes = strKey.ComputeHash(Encoding.UTF8.GetBytes("KataKunciUntukPenyandian"));
        tdcsp.Key = bytes;

        byte[] IV = { 38, 55, 206, 48, 28, 64, 20, 15 };
        tdcsp.IV = IV;

        ICryptoTransform ict = tdcsp.CreateDecryptor();
        byte[] btx = Convert.FromBase64String(strcode);

        MemoryStream xMemory = new MemoryStream();
        CryptoStream criptoStr = new CryptoStream(xMemory, ict, CryptoStreamMode.Write);
        criptoStr.Write(btx, 0, btx.Length);
        criptoStr.FlushFinalBlock();

        hasil = Encoding.UTF8.GetString(xMemory.ToArray());
    }
    catch (Exception)
    {
        hasil = "x";
    }
    return hasil;
}

Tambahkan di baris paling atas

using System.Security.Cryptography;
using System.IO;
using System.Text; 

Untuk menerapkannya, tinggal dirubah string “KataKunciUntukPenyandian” sesuai dengan kata kunci yang kita inginkan. Kata kunci ini harus sama persis di method encript dan decript data.

Special thanks: Heri_tri

About Yuniar

Penulis sekarang lebih banyak bekerja menggunakan teknologi Microsoft .NET secara umum dan TIDAK lagi menggunakan aplikasi MapXtreme.net dari MapInfo. Karena itu mohon maaf, jika pertanyaan-pertanyaan mengenai MapXtreme sudah tidak bisa saya jawab lagi.

Posted on 12 November 2009, in .NET and tagged , , . Bookmark the permalink. 4 Komentar.

  1. mantap euy…

  2. untuk enkripsi image ada contohnya ?

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: