यहाँ मैं DBMS_CRYPTO पैकेज का उपयोग करके Oracle में पासवर्ड एन्क्रिप्ट करने के लिए एक उदाहरण दे रहा हूँ।
इसे प्रदर्शित करने के लिए, मैंने उपयोगकर्ता आईडी (USER_ID) varchar2 डेटा प्रकार को संग्रहीत करने और एन्क्रिप्टेड पासवर्ड (ENC_PSW) कच्चे डेटा प्रकार को संग्रहीत करने के लिए निम्न तालिका बनाई है।
टेबल बनाएं
SET DEFINE OFF; CREATE TABLE ENC_DATA ( USER_ID VARCHAR2(20 BYTE), ENC_PSW RAW(2000) ) / ALTER TABLE ENC_DATA ADD ( CONSTRAINT ENC_DATA_PK PRIMARY KEY (USER_ID)) /
Oracle में पासवर्ड एन्क्रिप्ट करने का एक उदाहरण
अब निम्नलिखित PL/SQL प्रोग्राम के माध्यम से, हम पासवर्ड mypassword123 स्टोर करेंगे उपयोगकर्ता आईडी के लिए SCOTT . एन्क्रिप्शन के लिए कुंजी महत्वपूर्ण हिस्सा है क्योंकि इसे डिक्रिप्ट करने के लिए आपको उसी कुंजी का उपयोग करने की आवश्यकता होती है। आप 16 कैरेक्टर की लंबाई वाली किसी भी अल्फा-न्यूमेरिक कुंजी का उपयोग कर सकते हैं। DBMS_CRYPTO पैकेज के बारे में अधिक जानकारी के लिए Oracle दस्तावेज़ीकरण देखें।
SET SERVEROUTPUT ON; DECLARE l_user_id enc_data.USER_ID%TYPE := 'SCOTT'; l_user_psw VARCHAR2 (2000) := 'mypassword123'; l_key VARCHAR2 (2000) := '1234567890999999'; l_mod NUMBER := DBMS_CRYPTO.ENCRYPT_AES128 + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5; l_enc RAW (2000); BEGIN l_user_psw := DBMS_CRYPTO.encrypt (UTL_I18N.string_to_raw (l_user_psw, 'AL32UTF8'), l_mod, UTL_I18N.string_to_raw (l_key, 'AL32UTF8')); DBMS_OUTPUT.put_line ('Encrypted=' || l_user_psw); INSERT INTO enc_data (user_id, enc_psw) VALUES (l_user_id, l_user_psw); COMMIT; END; /
आउटपुट
Encrypted=132BEDB1C2CDD8F23B5A619412C27B60 PL/SQL procedure successfully completed.
ENC_DATA तालिका में डेटा जांचें:
SELECT * FROM enc_data;
USER_ID ENC_PSW SCOTT 132BEDB1C2CDD8F23B5A619412C27B60
उपरोक्त उदाहरण में, यह उपयोगकर्ता आईडी SCOTT के लिए पासवर्ड को एन्क्रिप्ट करता है और enc_data तालिका में संग्रहीत किया जाता है। अब पासवर्ड लाने और इसे डिक्रिप्ट करने के लिए PL/SQL प्रोग्राम नीचे दिया गया है।
Oracle में पासवर्ड डिक्रिप्ट करने का एक उदाहरण
SET SERVEROUTPUT ON; DECLARE l_user_id enc_data.user_id%TYPE := 'SCOTT'; l_user_psw RAW (2000); l_key VARCHAR2 (2000) := '1234567890999999'; l_mod NUMBER := DBMS_CRYPTO.ENCRYPT_AES128 + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5; l_dec RAW (2000); BEGIN SELECT enc_psw INTO l_user_psw FROM enc_data WHERE user_id = l_user_id; l_dec := DBMS_CRYPTO.decrypt (l_user_psw, l_mod, UTL_I18N.STRING_TO_RAW (l_key, 'AL32UTF8')); DBMS_OUTPUT.put_line ('Decrypted=' || UTL_I18N.raw_to_char (l_dec)); END; /
आउटपुट
Decrypted=mypassword123 PL/SQL procedure successfully completed.
यह भी देखें:
- Oracle फ़ॉर्म में पासवर्ड कैसे छिपाएं?
- Oracle में Sys उपयोगकर्ता पासवर्ड बदलें