Arşiv

Posts Tagged ‘utl_encode.text_encode’

pl/sql de base64 encode & decode kullanımı


Merhaba,
Pl/sql yardımı ile database üzerinde kullandığımız bir değişken ya da sabit metinleri şifrelemeye ihtiyacımız olduğu zaman database paketlerinden olan utl_encode paketi bizim ihtiyaçlarımıza cevap verebilir. Bu paket içerisinde bulunan text_encode ve text_decode fonksiyonları ile base64 tipinde verileri şifreleyebiliriz ve base64 tipinde şifrelenmiş verileri çözebiliriz. Öncelikle bu paketi ve altındaki fonksiyonları kullanmak için kendimize encode ve decode işlemlerini yapan fonksiyon yaratalım. Encode işlemi için aşağıdaki fonksiyonu kullanalım.

CREATE OR REPLACE FUNCTION base64_encode(str VARCHAR2) RETURN VARCHAR2 IS
  str_b64 VARCHAR2(4000);
BEGIN
  --/*WE8ISO8859P9 = ISO 8859-9 West European & Turkish*/
  str_b64 := utl_encode.text_encode(str, 'WE8ISO8859P9', utl_encode.base64);

  RETURN(str_b64);
END base64_encode;

Decode işlemi içinde aşağıdaki fonksiyonu kullanalım.

CREATE OR REPLACE FUNCTION base64_decode(str VARCHAR2) RETURN VARCHAR2 IS
  str_b64 VARCHAR2(4000);
BEGIN
  --/*WE8ISO8859P9 = ISO 8859-9 West European & Turkish*/
  str_b64 := utl_encode.text_decode(str, 'WE8ISO8859P9', utl_encode.base64);

  RETURN(str_b64);
END base64_decode;

Her iki fonksiyonumuzu oluşturduktan sonra sıra örnek yapmada. Encode işlemi ile istediğimiz veriyi şifreleyebiliriz. Örnek olarak aşağıdaki kullanım ve çıktı sonuçları mevcuttur.

SELECT base64_encode('PL/SQL Base64 Encode & Decode') FROM dual;

Şifreli çıktı sonucumuz aşağıdadır.

UEwvU1FMIEJhc2U2NCBFbmNvZGUgJiBEZWNvZGU=

Endoce işlemi ile şifrelenen “PL/SQL Base64 Encode & Decode” bilgisinin base64 karşılığını yani “UEwvU1FMIEJhc2U2NCBFbmNvZGUgJiBEZWNvZGU=” bilgisini de decode işleminde kullanarak yapmış olduğumuz şifreleme ve şifre çözme işleminin sağlamasını da yapmış oluyoruz. Encode durumda olan verimizin decode işle çözümleme işlemide aşağıdaki örnekte mevcuttur.

SELECT base64_decode('UEwvU1FMIEJhc2U2NCBFbmNvZGUgJiBEZWNvZGU=') FROM dual;

Bir önceki fonksiyonumuz ile şifrelediğimiz verinin çözülmüş hali aşağıdadır.

PL/SQL Base64 Encode & Decode

Kolay gelsin.