非字符数据库密码如何连接

Posted

技术标签:

【中文标题】非字符数据库密码如何连接【英文标题】:Non-characters DB password how to connect 【发布时间】:2016-10-03 13:57:56 【问题描述】:

我的任务是找回丢失的 MS Access 数据库密码,该数据库附带一个软件。

我为此尝试了一个工具,但返回的字符串看起来已损坏,包括“字符”,例如:n

我使用多功能工具找到密码和这个结果

密码恢复软件:

ollydbg:

同样的结果 我找到了 2 密码 克莱尔文本:4.3.5_For_Alathar 和非文本:n

真实密码如何以及如何连接:

<?php
    $dbName = "D:\UwAmp\www\db\user.mdb";
    $password1 = "4.3.5_For_Alathar";
    $password2 = "n<ژ”n2ˆrک€r”";
    $user = "";
    if (!file_exists($dbName)) 
       die("Could not find database file.");
    

    $db = new PDO("odbc:DRIVER=Microsoft Access Driver (*.mdb); DBQ=$dbName; Pwd=$password1; ");
   //$connection = odbc_connect("Driver=Microsoft Access Driver (*.mdb);Dbq=$dbName", $user , $password);
    ?>

结果:

SQLDriverConnect: -1905 [Microsoft][ODBC Microsoft Access Driver] 密码无效

【问题讨论】:

这可能是编码不匹配。例如,密码存储为 Latin-1,您尝试将其视为 UTF8。我会尝试将它粘贴到纯文本编辑器中,比如 Notepad++ 并摆弄编码。 使用的字符也可能是非拉丁字符。尝试将其解析为2cyr.com/decode 之类的工具,例如 请注意,您的 password2 前面有一些不可显示的字节/字符(屏幕截图中的空白矩形)。它可能是密码1的盐渍/散列/异或...版本-它们几乎(?)长度相等 【参考方案1】:

所以我需要发送这个字符,但输入输出字符串不同!!! 如何打印这个字符串 n”;

echo "orig= n<ژ”n2ˆrک€r”<br>";

这个输出 n

打印正确字符串或发送到数据库的方式不同

<?php
$password = mb_convert_encoding('&#x18;&#xc;&#x16;&#xc;&#x1a;&#x6e;&#x3c;&#x698;&#x201d;&#x6e;&#x32;&#x2c6;&#x72;&#x6a9;&#x20ac;&#x72;&#x201d;', 'UTF-8', 'html-ENTITIES');
echo "orig= n<ژ”n2ˆrک€r”<br>";
echo "pas= ".$password."<br>";
$unicodeChar = '\u0698';
echo json_decode('"'.$unicodeChar.'"');
echo "<br>";
echo mb_convert_encoding("\x20\x1D", 'UTF-8', 'UTF-16BE');

echo "<br>";

echo "<br>";
?>

【讨论】:

【参考方案2】:

这个字符串已经编码成utf-8

http://www.fileformat.info/info/unicode/char/0018/index.htm


http://www.fileformat.info/info/unicode/char/000c/index.htm


http://www.fileformat.info/info/unicode/char/0016/index.htm


http://www.fileformat.info/info/unicode/char/001A/index.htm

ژ
http://www.fileformat.info/info/unicode/char/0698/index.htm

”
http://www.fileformat.info/info/unicode/char/201D/index.htm

ک
http://www.fileformat.info/info/unicode/char/06A9/index.htm

n
http://www.fileformat.info/info/unicode/char/006E/index.htm

r 
http://www.fileformat.info/info/unicode/char/0072/index.htm

< 
http://www.fileformat.info/info/unicode/char/003c/index.htm

2 
http://www.fileformat.info/info/unicode/char/0032/index.htm

ˆ 
http://www.fileformat.info/info/unicode/char/02C6/index.htm

ˮ
http://www.fileformat.info/info/unicode/char/02EE/index.htm

€
http://www.fileformat.info/info/unicode/char/20AC/index.htm

【讨论】:

以上是关于非字符数据库密码如何连接的主要内容,如果未能解决你的问题,请参考以下文章

如何转义 RODBC 连接字符串密码中的特殊字符

在 pg_restore 中,如何使用 postgres 连接字符串来指定主机/数据库/用户名/密码?

如何使用 SqlConnectionStringBuilder 从连接字符串中获取数据库名称

从连接字符串中获取用户名和密码的正确方法? [复制]

VS2008远程连接MSSQL2005问题

如何使用 Node 从 MySQL 读取非拉丁字符?