Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Có ai biết kỹ thuật mã hóa JDeveloper / SQL Developer đang sử dụng để duy trì thông tin đăng nhập không?

Đối với những người tò mò, những gì bạn thực sự thấy là khóa bí mật được nối với mật khẩu được mã hóa. Ví dụ:tôi đã thử mã hóa mật khẩu "SAILBOAT" bằng:

DatabaseProviderHelper.goingOut("SAILBOAT")

Trong trường hợp cụ thể này, kết quả là:

0527C290B40C41D71139B5E7A4446E94D7678359087249A463

Byte đầu tiên là hằng số:

05

8 byte tiếp theo đại diện cho khóa bí mật được tạo ngẫu nhiên (cho mật mã DES):

27C290B40C41D711

Các byte còn lại là mật khẩu được mã hóa:

39B5E7A4446E94D7678359087249A463

Do đó, để giải mã mật khẩu, bạn chỉ cần sử dụng điều này:

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 có hỗ trợ tìm kiếm toàn văn không?

  2. Báo cáo sẵn sàng vá trực tuyến R12.2

  3. Hàm NCHR () trong Oracle

  4. Cách xuất kết quả truy vấn sang tệp CSV trong SQL Developer (Oracle)

  5. câu lệnh sqlplus từ dòng lệnh