
Şifreleme Fonksiyonu;
CREATE OR REPLACE FUNCTION sifrele (p_gnl_data in VARCHAR2, p_gnl_key IN VARCHAR2) RETURN RAW IS p_gnl_result RAW(2048);Deşifreleme fonksiyonu;
BEGIN
p_gnl_result := dbms_crypto.encrypt(src => utl_raw.cast_to_raw(p_gnl_data), typ => DBMS_CRYPTO.DES_CBC_PKCS5, key => utl_raw.cast_to_raw(p_gnl_key));
RETURN(p_gnl_result);
END;
CREATE OR REPLACE FUNCTION sifrecoz (p_gnl_rawdata in RAW, p_gnl_key IN VARCHAR2) RETURN VARCHAR2 IS p_gnl_result VARCHAR2(2048);
BEGIN
p_gnl_result := dbms_crypto.decrypt
( src => p_gnl_rawdata,
typ => DBMS_CRYPTO.DES_CBC_PKCS5,
key => utl_raw.cast_to_raw(p_gnl_key) );
RETURN(utl_raw.cast_to_varchar2(p_gnl_result));
END;
Burada şifrelenecek veri ve anahtar varchar olarak fonksiyona yollanmaktadır. Şifre çözme için ise şifreli veri RAW olarak yollanmalıdır. Şifrelenen veri RAW formatta gelmektedir. 2048 olmasının nedeni, Canımın istediğinden dolayıdır. Siz veri boyutuna göre ayarlayacaksınız. Ama RAW'a çevrilen verilerin boyutu büyümektedir. Ona göre. Anahtar ise yine VARCHAR. şifre çözümün sonucunda VARCHAR veri gelmektedir.
Örnekler ise;
Eğer şifreleme sonucu VARCHAR gönderilmesini istiyorsanız ve deşifrelerken, şifreli VARCHAR'ı yollamak istiyorsanız;
SQL> select p_gnl_encrypt('a123aab121-12sa','abcdefg12') sifrele from dual;
sifrele
-------------------------------------------
ECF692DE128241E3B93C1916F07BA21A
SQL> select p_gnl_decrypt('ECF692DE128241E3B93C1916F07BA21A','abcdefg12') sifrecoz from dual;
sifrecoz
-------------------------------------------
a123aab121-12sa
CREATE OR REPLACE FUNCTION p_gnl_encrypt (p_gnl_data in VARCHAR2, p_gnl_key IN VARCHAR2) RETURN VARCHAR2 IS p_gnl_result VARCHAR2(2048);
BEGIN
p_gnl_result := dbms_crypto.encrypt(src => utl_raw.cast_to_raw(p_gnl_data), typ => DBMS_CRYPTO.DES_CBC_PKCS5, key => utl_raw.cast_to_raw(p_gnl_key));
RETURN(utl_raw.cast_to_varchar2(p_gnl_result));
END;
/
CREATE OR REPLACE FUNCTION p_gnl_decrypt (p_gnl_rawdata in VARCHAR2, p_gnl_key IN VARCHAR2) RETURN VARCHAR2 IS p_gnl_result VARCHAR2(2048);Örnek istiyorsanız;
BEGIN
p_gnl_result := dbms_crypto.decrypt ( src => utl_raw.cast_to_raw(p_gnl_rawdata), typ => DBMS_CRYPTO.DES_CBC_PKCS5, key => utl_raw.cast_to_raw(p_gnl_key) );
RETURN(utl_raw.cast_to_varchar2(p_gnl_result));
END;
/
SQL> select p_gnl_encrypt('a123aab121-12sa','abcdefg12') sifrelenmis from dual;
sifrelenmiş
--------------------------
���A� �
SQL> select p_gnl_decrypt(p_gnl_encrypt('a123aab121-12sa','abcdefg12'),'abcdefg12') desifrelenmis from dual;
desifrelenmis
-----------------------------
a123aab121-12sa
Saygılar Sevgiler...
DUYURU: Yakında tüm yazılarımı, resimlerimi, koleksiyonumu, hakkımda bilgileri tek bir adresten yani www.ahmetmelihbasbug.net adresinden görebileceksiniz... www.ahmetmelihbasbug.net yakında açılıyor.
Merhabalar, yazı içeriği güzel olmuş lakin yazı sitili biraz daha düzgün olursa iyi olur okunması açısından :)
YanıtlaSilTeşekkürler