我有一个旧的Paradox database(我可以将其转换为Access 2007),其中包含超过200,000条记录。这个数据库有两列:第一个名为“Word”,第二个名为“Mean”。这是一个字典数据库,我的客户希望将这个旧数据库转换为ASP.NET和SQL。解密加密值?
但是,我们不知道用什么密钥或方法来加密或编码Unicode格式的“均值”列。该软件本身是用Delphi 7编写的,我们没有源代码。我的客户端只知道登录数据库的凭证。问题在于解码Mean列。
我所拥有的是编译好的windows应用程序和Paradox数据库。该软件可以解码每个“Word”的“Mean”列,以便该方法和/或密钥位于其自己的编译代码(.exe)或其目录中的一个文件中。
例如,我们知道,下面的行中的“Zymurgy” 确切指的是“مبحثعملتخمیردرشیمیعلمی,تخمیرشناسی”由于应用程序转换会这样。这里是记录看什么,当我在Access中打开数据库,如:
Word Mean
Zymurgy 5OBnGguKPdDAd7L2lnvd9Lnf1mdd2zDBQRxngsCuirK5h91sVmy0kpRcue/+ql9ORmP99Mn/QZ4=
因此,我们正在努力探索如何在平均值列中的值转换为“مبحثعملتخمیردرشیمیعلمی,تخمیرشناسی” 。我认为上面一行中的“均值”列值以Base64字符串格式编码,但解码Base64字符串还没有产生预期的文本。
win app目录中文件的扩展名为dll,CCC,DAT,exe(除主应用程序文件外),SYS,FAM,MB,PX,TV,VAL。
任何形式的帮助表示赞赏。
这里有两个例子,记得在开始和结束的双引号不是字符串的一部分:
word: "abdominal"
coded value: "vwtj0bmj7jdF9SS8sbrIalBoKMDvTbpraFgG4gP/G9GLx5iU/E98rQ=="
translation in Farsi: "شکمی, بطنی, وریدهای شکمی, ماهیان بطنی"
word: "cart"
coded value: "KHoCkDsIndb6OKjxVxsh+Ti+iA/ZqP9sz28e4/cQzMyLI+ToPbiLOaECWQ8XKXTz"
translation in Farsi: "ارابه, گاری, دوچرخه, چرخ, با گاری بردن"
这里是结果不同的编码:
1- in unicode the result is: "ᩧ訋퀽矀箖�柖�섰᱁艧껀늊螹泝汖銴岔也捆鹁"
2- in utf32 the result is: "��������������"
3- in utf7 the result is: "äàg\v=ÐÀw²ö{Ýô¹ßÖg]Û0ÁAgÀ®²¹ÝlVl´\\¹ïþª_NFcýôÉÿA"
4- in utf8 the result is: "��g\v�=��w���{����g]�0�Ag��������lVl���\\����_NFc����A�"
5- in 1256 the result is: "نàg\vٹ=ذہw²ِ–{فô¹كضg]غ0ءAg‚ہ®ٹ²¹‡فlVl´’”\\¹ïھ_NFcôةےA"
但我发现,悖论数据库系统在密钥管理方面非常复杂,大多数情况下密钥都是“复合密钥”,这就是为什么它存在问题,这就是为什么它被放弃了!
UPDATE:我试图通过使用AutoIt v3来进行自动化,因为解密过程就我所了解的不能在一天或两天内完成。现在我有另一个与文字/字体有关的问题。当我将翻译的文本复制到记事本时,它会变成一些无法识别的文本,除非我将记事本的字体更改为翻译软件的字体。如果我在波斯语的记事本中键入内容,无论我选择什么字体,它都会正确显示它。更有趣的是,当我将文本复制到MS Office Word等任何其他程序时,无论选择什么字体,它都能正确显示。
那么我该如何解决这个问题?
你是怎么从“win app”中获得“zymurgy”这个词的意思的? – muratgu 2011-03-05 16:27:50
这看起来像一个不错的挑战。但我们需要更多信息。什么是base-64解码的“Mean”字符串,十六进制?你期待什么unicode角色? (另外,这是编码/解码,不是加密/解密。) – TonyK 2011-03-05 16:27:51
试试这个,http://arcanecode.com/2007/03/21/encoding-strings-to-base64-in-c/ 然后保存字符串在unicode文本文件中查看结果。 – 2011-03-05 16:57:10