我有一箇舊的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