Cell and Column-Level Encryption

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.

10

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 !

One thought on “Cell and Column-Level Encryption

  1. Pingback: Using Hash Algorithms in SQL Server - Suherman Blog

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.