非字符数据库密码如何连接
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('n<ژ”n2ˆrک€r”', '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
【讨论】:
以上是关于非字符数据库密码如何连接的主要内容,如果未能解决你的问题,请参考以下文章
在 pg_restore 中,如何使用 postgres 连接字符串来指定主机/数据库/用户名/密码?