實驗二 電子公文傳輸系統安全-進展2
阿新 • • 發佈:2022-06-05
實驗二 電子公文傳輸系統安全-進展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)的方法