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

क्या किसी को पता है कि क्रेडेंशियल जारी रखने के लिए जेडी डेवलपर/एसक्यूएल डेवलपर किस एन्क्रिप्टिंग तकनीक का उपयोग कर रहा है?

जिज्ञासु के लिए, जो आप वास्तव में देख रहे हैं वह एन्क्रिप्टेड पासवर्ड के साथ गुप्त कुंजी है। उदाहरण के लिए, मैंने "SAILBOAT" पासवर्ड को एन्क्रिप्ट करने का प्रयास किया:

DatabaseProviderHelper.goingOut("SAILBOAT")

इस विशेष उदाहरण में, परिणाम यह था:

0527C290B40C41D71139B5E7A4446E94D7678359087249A463

पहली बाइट स्थिर होती है:

05

अगले 8 बाइट्स बेतरतीब ढंग से उत्पन्न गुप्त कुंजी (डीईएस सिफर के लिए) का प्रतिनिधित्व करते हैं:

27C290B40C41D711

शेष बाइट एन्क्रिप्टेड पासवर्ड हैं:

39B5E7A4446E94D7678359087249A463

इसलिए, पासवर्ड को डिक्रिप्ट करने के लिए, आप बस इसका उपयोग करें:

public static byte[] decryptPassword(byte[] result) throws GeneralSecurityException {
    byte constant = result[0];
    if (constant != 5) {
        throw new IllegalArgumentException();
    }

    byte[] secretKey = new byte[8];
    System.arraycopy(result, 1, secretKey, 0, 8);

    byte[] encryptedPassword = new byte[result.length - 9];
    System.arraycopy(result, 9, encryptedPassword, 0, encryptedPassword.length);

    byte[] iv = new byte[8];
    for (int i = 0; i < iv.length; i++) {
        iv[i] = 0;
    }

    Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
    cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(secretKey, "DES"), new IvParameterSpec(iv));
    return cipher.doFinal(encryptedPassword);
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. आप Oracle में अधिकतम संभव तिथि कैसे प्राप्त करते हैं?

  2. जेडीबीसी रेडीस्टेटमेंट में पसंद की क्वेरी का उपयोग नहीं कर सकते हैं?

  3. Oracle क्लाइंट स्थापना त्रुटि - पथ बहुत लंबा

  4. Oracle को Windows से SQL सर्वर से कनेक्ट करना

  5. ऑरैकल में सीमांकित स्ट्रिंग को पंक्तियों में बदलें