Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle में पासवर्ड कैसे एन्क्रिप्ट करें?

यहाँ मैं 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 उपयोगकर्ता पासवर्ड बदलें

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL में हमेशा दशमलव स्थान दिखाएं?

  2. क्या Oracle पूर्ण पाठ खोज का समर्थन करता है?

  3. मैं क्रिएट या रिप्लेस का उपयोग कैसे करूं?

  4. Oracle 10 उदाहरणों के साथ PL/SQL में टेबल कमांड बनाएं

  5. MONTHS_BETWEEN () Oracle में फ़ंक्शन