日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python des解密_DES-Python加解密案例

發布時間:2023/12/20 python 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python des解密_DES-Python加解密案例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在python中處理des加解密,常用的庫是pyDes這個庫,現在以具體例子來講解加解密算法

1、需求:對一段數字或者字符或者其他格式文本進行加密,本次使用des里面的ECB模式

快捷工具鏈接:http://tool.chacuo.net/cryptdes

image.png

比如:想要實現以上的加密方式,代碼實現為:

from pyDes import *

import base64

Des_Key = b"abcdefgh" # 相當于加密鑰

Des_IV = b"\x22\x33\x35\x81\xBC\x38\x5A\xE7" # 自定IV向量(官網例子就是這么寫的)

#加密id算法

def encrypt_str(s):

k = des(Des_Key, ECB, Des_IV, pad=None, padmode=PAD_PKCS5)

encrystr = k.encrypt(s)

print(base64.b64encode(encrystr))

return base64.b64encode(encrystr)

#解密id算法

def decrypt_str(s):

k = des(Des_Key, ECB, Des_IV, pad=None, padmode=PAD_PKCS5)

decrystr = k.decrypt(base64.b64decode(s))

print(decrystr)

return decrypt_str

if __name__ == "__main__":

encrypt_str('1234567')

decrypt_str('En6l+EwvM48=')

執行測試下結果為:

image.png

結果與快捷工具網站上是一致的。

2、加解密過程中問題匯總

①ValueError: Invalid DES key size. Key must be exactly 8 bytes long.

翻譯:DES密鑰大小無效。密鑰長度必須正好為8個字節

根據錯誤提示從源碼來分析:

image.png

問題主要出現在密碼(key)的長度上(本代碼中的Des_Key )比如是控制在8個以內。但是在快捷工具網站上http://tool.chacuo.net/cryptdes 輸入超過8個字符串是可以正常加解密的。

通過分析比較后,發現其實加密鑰不算輸入多長,實際只取前8位字符,所以你會看到8個加密鑰及8個以上加密鑰的加解密結果一致,如圖:

image.png

所以后續可以自己碰到是des加密鑰超過8個字符時,可以處理下只取前8個密鑰就可以了。

總結

以上是生活随笔為你收集整理的python des解密_DES-Python加解密案例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。