Django中資料儲存,資料加密功能

2021-08-28 05:03:02 字數 2990 閱讀 6074

1、cookie

1、會話技術

2、客戶端的會話技術(資料儲存在瀏覽器上

3、問題

導致原因:在web應用中,一次網路請求是從request開始,到response結束,跟以後的請求或者跟其他請求沒有關係

(導致每次請求之間的資料沒有關係(短連線、長鏈結))

解決:在客戶端保留資料(cookie)或者服務端保留資料(session)來建立關係

4、cookie的使用

1、存

格式:response.set_cookie(key,value)

例: response.set_cookie('username',username)

response.set_cookie('password',password)

通過response通過瀏覽器要儲存key,value形式的cookie

2、取 如過瀏覽器保留了cookie,那麼每次請求該伺服器的時候,會自動的攜帶該cookie

格式:request.cookies.get(key)

例: username = request.cookies.get('username')

password = request.cookies.get('password')

3、設定過期時間

預設情況下,關閉瀏覽器cookie就會過期,有時候我們需要設定過期時間

格式:response.set_cookie(key,value,expirse = 值)

expires = 0 立馬過期

expires = none 永不過期

expires = 值 單位是秒

expires = timedelta(days = 值) 表示多少天後過期 (hours = 值) 表示多少小時候過期

例:response.set_cookie('password', password, expires=timedelta(seconds=2))

4、刪除

格式:reponse.delete_cookie(key)

例:response.delete_cookie('password')

5、cookie的應用場景

1、儲存帳號,密碼

2、京東的購物車(不登入也可以新增到購物車)

3、保留使用者的瀏覽資訊...

2、session

1、 會話技術

2、服務端的會話技術

3、需要客戶端的支援才可以

4、使用

1、存

格式:request.session[key] = value

例:request.session['username']= username

request.session['password']=password

注意:在django中儲存了乙個session後,django會自動的生成session key,並將session key與資料自動的儲存到django_session表中,資料會自動的用base64編碼,並會自動讓瀏覽器的cookie儲存sessionid(就是session key)

2、取格式:value = request.session.get(key)

例:username = request.session.get('username')

password = request.session.get('password')

注意:在django中,會自動將cookie中的sessionid拿出來跟資料庫中的session key匹配,匹配成功後即可以獲取值

3、清除

1、清除對應的cookie

2、del request.session

推薦的3、request.session.flush() 會清除對應的cookie及session

3、md5—資訊摘要—加密

md5可以將任何乙個二進位制的資料通過數學演算法,轉換成乙個一定長度(128位)的二進位制資料

特點:1、結果是唯一的,不可能重複

2、不可逆

作用:1、通常用來加密密碼

2、通常用來驗證乙個資料的完整性

使用md5處理

建立乙個md5物件

md5 = hashlib.md5()

將乙個二進位制資料進行md5處理,生成乙個128位的二進位制資料

4位的二進位制是一位的十六進製制

md5.update(password.encode('utf-8'))

將二進位制結果轉換成32位十六進製制的結果

password = md5.hexdigest()

4、生成乙個唯一性的字串

1、自己生成:

唯一的字串規則:時間戳 + 隨機數(很多位) + 公司的網域名稱

mytoken = str(time.time()) + str(random.randint(100000,999999)) + 'www.baidu.com'

2、使用uuid模組

生成乙個唯一的uuid

myuuid = uuid.uuid4()

5、編碼/解碼

編碼:將乙個資料按照碼表轉換成二進位制的形式  encode

解碼:將二進位制的資料轉換成可視形式的資料 decode

解碼的時候碼表必須與編碼的碼表一致

utf-8、gbk、base64

6、加密/解密

1、des 對稱加密

加密的金鑰與解密的金鑰是同乙個金鑰
2、rsa 非對稱加密

加密的金鑰(公鑰)與解密的金鑰(私鑰)不是同乙個金鑰
3、md5/sha 資訊摘要

可以將任何乙個二進位制的資料通過數學演算法,轉換成乙個一定長度的二進位制資料,而該資料不可逆且唯一

MySQL儲存資料加密

建一張測試表 create table users username varchar 128 使用者暱稱 password blob 密碼 engine innodb default charset utf8 插入一條測試語句 insert into users username,password ...

mysql欄位加密儲存過程 資料庫 加密儲存過程

如何簡單的建立乙個加密儲存過程 create proc test 引數列表 with encription as主體 go為了演示,現在我們建立乙個具備各種引數型別的儲存過程作為測試 create proc test x int 3,s nvarchar 20 y int output with e...

MD5加密儲存資料

為了保證資料的隱蔽性以及處於安全方面的考慮,我們往往會將一些存入資料庫的有關密碼的資料使用加密的方式儲存起來,其中md5就是一種常用的加密方式 我知道的有兩種方法都可以達到加密的效果 1.在資料插入前加密 2.在插入資料時加密 2.1 在資料傳入前加密 commons codecgroupid co...