天天看點

程式中對密碼進行加解密的C代碼示例

問題的提出

在實際的軟體項目中,經常涉及到對密碼的處理,如使用者登入密碼、資料庫密碼、FTP密碼等。為了增加軟體的靈活性,一般都要求将這些密碼放到一個配置檔案中。但密碼原文容易記錄,若被軟體入侵者擷取,則後果不堪設想。是以我們不能直接将密碼原文填入配置檔案中,而要先對密碼進行加密,然後将加密之後的密文填入配置檔案,等程式讀取配置之後再進行解密處理。

整個流程如圖1所示。

程式中對密碼進行加解密的C代碼示例

圖1 加解密總體流程

示例程式流程

為了示範整個加解密的流程,設計了一個示範程式,其執行流程如圖2所示。

程式中對密碼進行加解密的C代碼示例

圖2 示例程式流程

示例程式代碼

配置檔案示例

配置檔案命名為Config.ini,其設定如圖3所示。

程式中對密碼進行加解密的C代碼示例

圖3 配置檔案内容

程式執行結果

1. iDecryptFlag為0時:

執行結果如圖4所示:

程式中對密碼進行加解密的C代碼示例

圖4 iDecryptFlag為0時的執行結果

檢視配置檔案,這時密碼值為加密之後的密文。

2. iDecryptFlag為1時:

執行結果如圖5所示:

程式中對密碼進行加解密的C代碼示例

圖5 iDecryptFlag為1時的執行結果

檢視配置檔案,這時密碼值經曆了“原文-->密文-->原文”的過程。