91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

django fernet fields字段加密的示例分析

發布時間:2021-08-25 09:13:16 來源:億速云 閱讀:139 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關django fernet fields字段加密的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一、fernet介紹

Fernet 用于django模型字段對稱加密,使用 crytography 庫。

官網幫助文檔

1、先決條件

django-fernet-fields 支持Django 1.8.2以及更高版本,Python 2.7、3.3、3.4、pypy和pypy3。

測試了PostgreSQL、SQLite和MySQL可用,但是任何支持BinaryField的Django數據庫后端應該都可以運行。

2、安裝

django-fernet-fields 在 PyPI可用,可用如下方法安裝:

pip install django-fernet-fields

二、fernet使用

1、用法示例

只需導入并使用模型中包含的字段類:

from django.db import models
from rbac.models import *
from fernet_fields import EncryptedCharField
class Customer(models.Model):
  """ 客戶(學生)表 """
  name = EncryptedCharField(verbose_name='姓名', max_length=64)
  gender_choices = (
    (1, '男'),
    (2, '女')
  )

可以聲明變量并和往常一樣讀取name字段的值,但是這些值在發送到數據庫之前會自動進行加密,并在數據庫中讀取時進行解密。

加密和解密都將在本地應用中執行,密鑰永遠不會發送到數據庫服務器,數據庫僅查看此字段的加密值。

2、字段類型

常用的字段類如下:EncryptedCharField, EncryptedEmailField, EncryptedIntegerField, EncryptedDateField, and EncryptedDateTimeField. 所有字段類都接受與其非加密版本相同的參數。

要創建其他一些自定義字段類的加密版本,可以從EncryptedField和其他字段類繼承:

from fernet_fields import EncryptedField
from somewhere import MyField
class MyEncryptedField(EncryptedField, MyField):
  pass

3、可空字段

允許使用可空的加密字段; NonePython中的值被轉換為NULL數據庫列中的實數。請注意,這通常會在列中向攻擊者顯示數據的存在與否。如果這是您的問題,請避免使用可空的加密字段; 而是在非可空加密字段中存儲一些其他的標記“空”值(將像任何其他值一樣加密)。

三、索引,約束和查找

由于Fernet加密不是確定性的(使用相同密鑰加密的相同源文本每次都會導致不同的加密令牌),因此索引或強制執行唯一性或對加密數據執行查找是無用的。每個加密值總是不同的,每次完全匹配查找都會失敗; 其他查找的結果將毫無意義。

由于這個原因,如果通過了 db_index=True,unique=True,primary_key=True,EncryptedField 將拋出 django.core.exceptions.ImproperlyConfigured。并且對于 EncryptedField 的任何類型的查找。除了為空之外,都將拋出django.core.exceptions.FieldError。

關于“django fernet fields字段加密的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

博罗县| 翼城县| 周宁县| 霞浦县| 瑞丽市| 萝北县| 玉溪市| 都兰县| 梁平县| 青川县| 蒙阴县| 怀宁县| 山西省| 宜宾市| 缙云县| 务川| 文山县| 县级市| 积石山| 保亭| 麟游县| 寿光市| 正定县| 泰安市| 永胜县| 宝应县| 应城市| 祁阳县| 中卫市| 收藏| 河东区| 香河县| 岳普湖县| 栾川县| 焦作市| 建阳市| 南平市| 灌南县| 宿松县| 灵石县| 揭西县|