kadangkala kita menyimpan sebuah data kedalam sebuah tabel di database yang sifat datanya sangat rahasia misalnya menyimpan data username dan password dari pengguna sebuah aplikasi.
dalam artikel ini saya mencoba berbagi cara mengenai melakukan enkripsi dengan menggunakan asymmetric key.
pertama kita siapkan sebuah tabel T_Pengguna yang berisi field Fusername dan Fpassword
USE [AdventureWorks] GO CREATE TABLE [dbo].[T_Pengguna]( [FUsername] [nvarchar](50) NOT NULL, [FPassword] [varbinary](max) NOT NULL, CONSTRAINT [PK_T_Pengguna] PRIMARY KEY CLUSTERED ( [FUsername] ASC ) ) ON [PRIMARY] GO
kemudian langkah selanjutnya kita buat terlebih dahulu asymmetric key nya terlebih dahulu.
create asymmetric key AsymKeyAdvWorks authorization dbo with algorithm = RSA_2048 encryption by password= N'P@ssw0rdYgB4ik'
nah sampai sini kita bisa mulai ber operasi untuk melakukan enkripsi terhadap sebuah cell atau field. kita akan coba input 2 buah user :
Declare @Usrnme1 Varchar(50) = 'Pengguna_1' Declare @UsrnmePsw1 Varchar(50) = 'PaswwordK3reN' Declare @Usrnme2 Varchar(50) = 'Pengguna_2' Declare @UsrnmePsw2 Varchar(50) = 'B4nJar8arU' insert into T_Pengguna values(@Usrnme1, ENCRYPTBYASYMKEY(ASYMKEY_ID('AsymKeyAdvWorks'),@UsrnmePsw1)) insert into T_Pengguna values(@Usrnme2, ENCRYPTBYASYMKEY(ASYMKEY_ID('AsymKeyAdvWorks'),@UsrnmePsw2)) go
nah sampai sini kita telah berhasil melakukan enkripsi untuk Password-password tadi yang dimasukkan kedalam tabel T_Pengguna.
Mungkin untuk kasus ini sebenarnya tidak perlu dilakukan proses dekripsi. Namun apabila suatu waktu diperlukan perlakuan deskripsi field FPassword dapat dilakukan dengan T-SQL berikut :
select Fusername,CONVERT(varchar(max), DecryptByAsymKey(ASYMKEY_ID('AsymKeyAdvWorks'), FPassword,N'P@ssw0rdYgB4ik')) as pw from T_Pengguna
Ok, selamat mencoba !
Pingback: Using Hash Algorithms in SQL Server - Suherman Blog