2012-10-03 163 views
-2

我工作的一個項目使用Qt,我需要保存數據(文件的路徑和密碼)永久性這樣我就可以得到它或修改它甚至任何時候,當我退出我的應用程序,然後重新運行它。 我想用一個加密的xml文件解決它,但我想做的沒有痕跡。保存數據永久

+2

它與cpu寄存器有什麼關係? – Dani

+3

您希望*保存數據*而不留下痕跡* ..?我認爲你需要澄清你的要求。 –

+1

@LucTouraille和永久.. – texasbruce

回答

2

你要麼使用一個文件或者其他一些平臺特定數據庫的機制,比如Windows的註冊表。但那會留下痕跡;你不能希望在本地存儲一些東西,不要在沒有rootkiting操作系統的情況下留下痕跡(甚至在硬件中留下痕跡,畢竟你正在將數據寫入驅動器)。

你可以希望做的一件事情就是不通過網絡遠程存儲數據,因爲網絡活動通常不會被記錄(但可以被觀察到),但是我可以看到2個問題這種做法:

1),可能造成一些隱私關注你的用戶(如果我是你的應用程序的用戶,我不喜歡太看到通過線路發送我的數據到一個未知的服務器);

2)您如何識別信息以便檢索?你可以在用戶名和計算機硬盤ID和網絡接口MAC地址上使用一些散列,但是如果其中一些改變了,數據就會丟失。您也可以爲應用程序的每次安裝生成一個唯一的ID,但它需要您在本地存儲該ID,並且這將是跟蹤

本地加密,以防止讀/篡改數據本質上是不安全的,因爲你需要有一些重複的平均檢索的關鍵。你會怎麼做?如果您只是在應用程序中對其進行硬編碼,則可以通過某些二進制文件讀取器輕鬆進行檢索。它不能位於名爲'key.txt'的文件中,原因很明顯。你可以在運行時使用一些複雜的算法來計算它,但是你總是需要在某個時刻將它加載到內存中,從某個地方可以很容易地找到它。

+0

謝謝@lvella很有趣,我同意你對第二種方法的看法,我認爲它不合適,我會看看我能用Windows的註冊表做些什麼,再次感謝你。 – Oumaya

2

當然不可能在計算機上保存某些東西而不留痕跡。一切都對root用戶可見。

但是,如果你不想讓別人去改變它,你可以對它進行加密,隱藏它,並將其設置爲只讀和根僅編輯權限。但不要讓任何人發現這是不可能的。 (你是否想要製造病毒?)即使你放入BIOS,也有辦法找到它。

+0

@oumaya:大多數密碼學的目標是使數據的查看非常困難,但並非不可能。請記住,加密越「重」,解密花費的時間就越多。 –

+0

感謝您的時間,我的意思是在這裏保存有關我的加密文件的路徑和密碼的數據,我想隱藏任何機構無法破解我的加密文件的信息。 – Oumaya