在OpenErp的配置文件中, 爲數據庫密碼加密

openerp連接數據庫的用戶名和密碼可以命令行給出, 也可以設置在配置文件中, 如下例所示:
db_user = openerp 
db_password = laoliu

因爲它使用了明文的密碼, 因此就存在一定的安全隱患。 將配置文件中的密碼進行加密, 可以在一定程度上提高系統的安全性

openerp在啓動時讀取配置文件,將配置文件或或命令行中設置的參數保存到了對象configmanager的options之中。因此, 我們可以在配置文件中對某項數據加密, 然後openerp的程序讀取options時, 對加密的數據進行解密即可。

加密和解密的方法有許多種,我們必須採用可逆的方法,比如Base64編碼:

加密過程: 我們用notepad++打開配置文件, 選擇密碼, 然後點擊菜單 插件 | MIME Tools | BASE64 Encode, 連續點擊數次。記錄好點擊的次數(比如,3次)。

解密過程: 修改tools目錄下的config.py
將文件最末尾的def __getitem__(self, key)改爲如下內容
   def __getitem__(self, key):
        res=self.options[key]
        if (key == "db_password") :
            for i in range(3): # 這裏的3是連接做base64編碼的次數
                res=res.decode("base64")
        return res

在config.py文件的頭部, 還需要加入如下一行, 導入base64編碼需要的庫
 import hashlib


base64編碼方式很容易被踩猜到, 特別是末尾有等於號的時候, 因此它很容易被破解。本文只是舉例說明修改openerp的方式, 在生產實際中應該使用更安全的加密和解密方式。

爲了安全起見, 修改後的config.py文件也應該刪去, 只留下編譯後的config.pyc文件。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章