md5演算法(摘要演算法、雜湊演算法)
1.md5演算法特點
壓縮性:任意長度的資料,算出的md5值長度都是固定的
容易計算:從原資料計算出md5值很容易
抗修改性:對原資料進行任何改動,哪怕只修改1個位元組,所得到的md5值都有很大區別
弱抗碰撞:已知原資料和其md5值,想找到乙個具有相同md5值的資料(即偽造資料)是非常困難的
強抗碰撞:想找到兩個不同的資料,使它們具有相同的md5值,是非常困難的
2.md5演算法優點
方便儲存:md5加密出來都是32位的字串,能夠給定固定大小的空間儲存,傳輸,驗證
檔案加密:md5運用在檔案加密上很有優勢,因為只需要32位字串就能對乙個巨大的檔案進行驗證完整性
不可逆:md5加密出來只會擷取末尾32位,具有良好的安全性,如果是對於引數加密很難偽造md5
加密損耗低:md5加密對於效能的消耗微乎其微
3.運用場景
使用者密碼,請求引數,檔案校驗
4.原理
md5以512位分組來處理輸入的資訊,且每一分組又被劃分為16個32位子分組,經過了一系列的處理後,演算法的輸出由四個32位分組組成,將這四個32位分組級聯後將生成乙個128位雜湊值
使用sqlalchemy建立資料表時,出現 access denied for user 'root'@'localhost'
出現這種情況最簡單的解決辦法是:解除安裝重灌mysql,一定要清理乾淨
刪除mysql:sudo apt-get remove mysql-*
清理殘留資料:dpkg -l |grep ^rc|awk '' |sudo xargs dpkg -p(出現對話方塊選擇yes)
完美解決sublime不能輸入中文的問題
sudo apt-get update && sudo apt-get upgrade
git clone
cd sublime-text-imfix
./sublime-imfix
sqlite插入資料
ret = student.query.all()
flask_script
有兩個relationship時,使用back_populates='',兩個relationship中都要寫對方的名字,以後查詢資料就可以直接.對方的名字
一對多惰性查詢
在relationship中新增lazy='dynamic'
資料遷移(db.create_all()只能建立資料表,要是資料表中有資料改動要使用資料遷移)
在命令列執行
python manage.py db init # init:為你的應用程式初始化migration,會自動生成乙個migrations資料夾
python manage.py db migrate
# 會生成乙個versions遷移檔案
1.檢測表的增加和刪除
2.檢測列的增加和刪除
3.列的nullable屬性的變更
4.檢測基本索引的變更或者unique約束的變更
5.檢測外來鍵約束的變更
python manage.py db upgrade # 執行遷移
專案遇到的小問題
隱藏動態新增的radiobutton的小圓圈 radiobutton.setbuttondrawable android.r.color.transparent radiobutton.setcompounddrawables null,null,null,null 隱藏動態新增的horizonta...
遇到的小問題
今天用vs2005編譯乙個專案的時候出現下面2個錯誤 dibimage.obj error lnk2019 無法解析的外部符號 cuda,該符號在函式 public bool thiscall cdibimage medianfilter char long,long,int,int,int,int...
遇到的小問題
今天用vs2005編譯乙個專案的時候出現下面2個錯誤 dibimage.obj error lnk2019 無法解析的外部符號 cuda,該符號在函式 public bool thiscall cdibimage medianfilter char long,long,int,int,int,int...