Search code examples
oracle-databaseplsqldeveloperpassword-encryption

Decrypting Stored Password on PL/SQL Developer


When you save connection details on All Around Automation's PL/SQL Developer, the password is encrypted as follows:

DisplayName=Oracle Production
IsFolder=0
Number=7
Parent=2
Username=user
Database=db_host:1521/db_name
ConnectAs=Normal
Edition=
Workspace=
AutoConnect=0
ConnectionMatch=536870911
Password=2578502833104824427441244294443234184532
IdentifiedExt=0
Color=65535

Some of these connections were entered years ago, and I can't track down the passwords. Does anyone know how to decode the encrypted strings above into the actual passwords?


Solution

  • The password is Z2Logis1z . I used the following C# code to decrypt, and you can read about it here

    https://adamcaudill.com/2016/02/02/plsql-developer-nonexistent-encryption/

    using System;
    using System;
    using System.Collections.Generic;
    using System.IO;
    
    public class Program
    {
      public static void Main()
      {
        var values = new List<int>();
            var ret = string.Empty;
        string scrambled= "2578502833104824427441244294443234184532";
    
            for (var i = 0; i < scrambled.Length; i += 4)
            {
                values.Add(Convert.ToInt32(scrambled.Substring(i, 4)));
            }
    
            var key = values[0];
            values.RemoveAt(0);
            for (var i = 0; i < values.Count; i++)
            {
                var val = values[i] - 1000;
                var mask = key + (10 * (i + 1));
    
                ret += (char)((val ^ mask) >> 4);
            }
    
        Console.WriteLine(ret);
    
      }
    }