- 註冊時間
- 2002-11-4
- 線上時間
- 60 小時
- 閱讀權限
- 100
- 積分
- 207
- 主題
- 21
- 精華
- 0
- 文章
- 194
該用戶從未簽到 - 文章
- 194
|
我在HanDBase上建了個資料庫寫個人日誌用, 一直以來為了隱私, 除了設定為開啓資料庫要輸入密碼外, 還設定了加密的功能. 一直到昨天, 我才知道自己對它的加密有些誤解.
昨天我要再開啓資料庫建立新的日誌時, 發現我可以輸入密碼開啓資料庫, 卻不能對加密的資料進行解密. 本來以為是加密時不當造成資料庫的損毀, 後來在接到DDH software, Inc.的technical support的回覆之後, 才知道不是我想的那回事.
我一直以為, 在資料庫中可以設定一組密碼, 而這組密碼也同時被使用於加密與解密的功能上. 雖然覺得這樣不怎麼make sense, 但一直以來也就這樣用著.
依據DDH的說明, 在加密資料庫時, HanDBase會要求輸入一組密碼. 這組密碼不見得就是一般設定(如開啓資料庫, 變更紀錄等)用的那一組. 不論你在加密時輸入什麼, 解密時就得要輸入一模一樣的密碼才能解密. 在DB properties--Security中, 你可以設1111(假設)作為access password, 那在access parameters中所有password required的功能, 都是以1111為password; 但是在加密時, 你不見得非得用1111才行, 你可以輸入123做為加密/解密的password. 而每次解密後要再加密時, 它會依據你當時輸入的密碼為password. 也就是說, 每次加密用的password都可以不同.
陷阱在這裡. 你要解密一個已加密的資料, 一定要以最後輸入的password來進行解密. 如果你一直以123為password, 而好死不死最後一次加密時手賤不小心打成1233, 眼睛還沒看到, 那解密時你再怎麼打123也解不了密. 這就是我這次的經歷. 所以第一個重點, 就是建入encrypt password時, 一定要確認輸入了正確的密碼, 不然就只能碰運氣了.
在DDH的回覆中, 也提供了一個補救的方法. 如果你用的HanDBase是Plus package的話, 那還多了一些機會. HanDBase Plus package提供了conduit, 這會在同步時在你的電腦端多建立一些備份檔, 而且有標註日期和時間. 這是為了同步時可以merge在電腦及handheld兩端對同一個資料庫進行過的變更用的. 這個路徑通常在c:\program files\palm\<username>\handbase3. 你只要用問題發生的時間點前的備份檔來復原就行了.
不過這個功能我無法使用, 因為我用的HanDBase沒有升級到Plus版, 還是原來的那個版本(陽春版? 隨便怎麼叫都行, 大家知道就好.) 所以我的username下沒有handbase3這個subfolder, 當然也沒有額外的備份檔可以拿來救.
至於最後我是怎麼解決這個問題的? 幸運的是, 我的PDA有拿來和家裡及公司的電腦同步. 問題發生時, 我的pda和家裡電腦上的資料庫已經被不當加密了, 但公司的還是問題發生前的那個備份. 因此我趕快回公司, 先進入HanDBase Desktop, 把那個備份檔開啓, 解除加密的功能, 儲存後同步. 這樣一來, 公司的電腦就會以install的方法將更改過的版本同步到pda中, overwrite PDA中的版本. 之後再回家和家裡的電腦同步一次, overwrite家裡電腦上的備份. 不過這一招只能在你至少還有一個備份是正常的, 而且沒有HanDBase Conduit才行.
寫了一大堆應該不少人都已經知道的東西. 不過還是把我的一點經驗放上來, 只要能對一個人有點幫助, 我就心滿意足了. 也當成是對之前幫助過我的朋友的回饋.
[ Last edited by katzel on 2005-1-31 at 20:58 ] |
|