正在解密 PL/SQL 开发者上存储的密码
Decrypting Stored Password on PL/SQL Developer
当您在 All Around Automation 的 PL/SQL Developer 上保存连接详细信息时,密码加密如下:
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
其中一些连接是几年前输入的,我无法找到密码。有谁知道如何将上面的加密字符串解码为实际密码?
你试过了吗http://show-me-password.tomecode.com/?这个工具似乎工作正常。
密码是 Z2Logis1z 。我用下面的C#代码解密,你可以在这里阅读
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);
}
}
当您在 All Around Automation 的 PL/SQL Developer 上保存连接详细信息时,密码加密如下:
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
其中一些连接是几年前输入的,我无法找到密码。有谁知道如何将上面的加密字符串解码为实际密码?
你试过了吗http://show-me-password.tomecode.com/?这个工具似乎工作正常。
密码是 Z2Logis1z 。我用下面的C#代码解密,你可以在这里阅读
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);
}
}