Thursday, May 19, 2005

Enkripsi... enkripsi...

Ternyata ASP.NET telah menyediakan .NET FCL (Framework Class Library) untuk masalah enkripsi data. Jadi kita (programmer) tidak harus bersusah-susah untuk membuatnya sendiri, dan untuk yang merasa bahwa pembuatan sekuriti bukanlah hal yang sulit, maka dengan adanya FCL ini kita lebih dimudahkan, karena pembuat FCL ini adalah orang-orang terlatih dalam bidang ini, jadi mari kita serahkan saja pada mereka, dan kita tinggal menggunakannya \(^^)/

Disediakan 4 macam cipher oleh .NET FCL, yaitu DES, RC2, Rijndael and TripleDES.
Ini contoh sederhana, penggunaan Rijndael.

class CipherWrapper
{
RijndaelManaged _cipher = null;
public CipherWrapper()
{
_cipher = InitCipher();
}
public CipherWrapper(byte[] key)
{
_cipher = InitCipher(key);
}
public byte[] Key
{
get { return _cipher.Key; }
set { _cipher.Key = value; }
}
public byte[] EncryptMessage(byte[] plainText, out byte[] iv)
{
_cipher.GenerateIV();
iv = _cipher.IV;
ICryptoTransform transform = _cipher.CreateEncryptor();
byte[] cipherText = transform.TransformFinalBlock(plainText, 0, plainText.Length);
return cipherText;
}
public byte[] DecryptMessage(byte[] cipherText, byte[] iv)
{
_cipher.IV = iv;
ICryptoTransform transform = _cipher.CreateDecryptor();
byte[] plainText = transform.TransformFinalBlock(cipherText, 0, cipherText.Length);
return plainText;
}
private RijndaelManaged InitCipher()
{
RijndaelManaged cipher = CreateCipher();
cipher.GenerateKey();
return cipher;
}

private RijndaelManaged InitCipher(byte[] key)
{
RijndaelManaged cipher = CreateCipher();
cipher.Key = key;
return cipher;
}
private RijndaelManaged CreateCipher()
{
RijndaelManaged cipher = new RijndaelManaged();
cipher.KeySize = 256;
cipher.BlockSize = 256;
cipher.Mode = CipherMode.CBC;
cipher.Padding = PaddingMode.PKCS7;
return cipher;
}
}

Sayang sekali saya pribadi bukanlah orang yang langsung mengerti hanya dengan membaca artikel ini, tetapi mungkin rekan-rekan sekalian bisa lebih mengerti
http://www.developerfusion.com/show/4647/1/

----------------------
|Yohan W. (201114282)|
----------------------

No comments: