Access Password Viewer是一个用于访问数据库密码的工具。实际上有很多类似的工具。如果你遇到过设置密码的问题,你可以简单地使用手头的小工具进行检查。每个人都知道密码并不难,所以使用密码的ACCESS工具并不多。我没想到会遇到无法检查密码的情况。
在网上找了很多工具,不知道其效果如何,有的竟然还收费,免费版一般只显示前三位密码。由于手头上的工具显示密码是乱码,以为是中文的密码,于是在网上寻找解密方法,试了很多都不太好使。
研究了ACCESS的密码算法,原来的取40位数据异或算法根本不管用了。而是取128位数据,根据初始密码,算出258位的密钥,用密钥对数据进行解密,解密之后并非密码。还要根据解密数据,用数学协处理器的浮点指令FISTP、FSTCW等,计算出密钥key值。再取解密数据的40位数据,计算出20个数字,其中10位跟key值进行异或,得到的结果用ChrW即可转换为字符(即ACCESS密码),不需要WideCharToMultiByte函数。