1. 程式人生 > 其它 >實驗二 電子公文傳輸系統安全-進展2

實驗二 電子公文傳輸系統安全-進展2

實驗二 電子公文傳輸系統安全-進展2

對於電子公文系統中的檔案採用了國密演算法SM2加密

SM2_PRIVATE_KEY = '00B9AB0B828FF68872F21A837FC303668428DEA11DCD1B24429D0C99E24EED83D5'
        SM2_PUBLIC_KEY = 'B9C9A6E04E9C91F7BA880429273747D7EF5DDEB0BB2FF6317EB00BEF331A83081A6994B8993F3F5D6EADDDB81872266C87C018FB4162F5AF347B483E24620207'
        sm2_crypt = sm2.CryptSM2(public_key=SM2_PUBLIC_KEY, private_key=SM2_PRIVATE_KEY)

        str1_bytes = bytes(password, encoding="utf8")
        str1_sm2en = sm2_crypt.encrypt(str1_bytes)
        print(str1_sm2en, len(str1_sm2en))

        article = Document(name=title, person=user, office=office, type=type, Classification=sec,
                           time=now, img=image, lyrics=summary, file=myFile, label_id=type_id, key=str1_sm2en)
        article.save()

對於資料庫口令,我們小組採用的是django進行加密
整個流程(如:django預設的登陸流程):

當用戶發起一個登陸請求時,會首先進入中介軟體,執行重要的 (SessionMiddleware、AuthenticationMiddleware)
然後進入檢視進行表單 AuthenticationForm 校驗(使用者名稱、密碼長度等),執行authenticate方法。
表單校驗通過的username,查詢資料庫,通過Hasher(加密演算法)進行密碼對比。
密碼校驗成功寫session、cookie,跳轉到落地頁。
如果是登陸狀態進入到登陸頁面,檢查到使用者時登陸狀態,直接跳轉到落地頁。

加密函式使用:

Django使用 PASSWORD_HASHERS 設定來選擇演算法,PASSWORD_HASHERS 是settings配置檔案中的一個配置項,這是一個 Django 支援的*雜湊演算法類列表 ,
第一個條目將被用來儲存密碼。如果你想使用不同演算法,你需要修改 PASSWORD_HASHERS ,
在列表中首選列出你的演算法
這就有了資料庫裡的口令加密結果:

下週計劃
1、設計將加密與摘要計算的演算法封裝進系統程式碼裡
2、學習django呼叫其他加密演算法(如SM3)的方法