最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實(shí)現(xiàn)的AES雙向?qū)ΨQ加密解密與用法分析

 更新時間:2017年05月02日 08:55:39   作者:cmsd  
這篇文章主要介紹了python實(shí)現(xiàn)的AES雙向?qū)ΨQ加密解密與用法,簡單分析了AES加密解密算法的基本概念并結(jié)合實(shí)例形式給出了AES加密解密算法的相關(guān)實(shí)現(xiàn)技巧與使用注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了python實(shí)現(xiàn)的AES雙向?qū)ΨQ加密解密與用法。分享給大家供大家參考,具體如下:

AES只是個基本算法,實(shí)現(xiàn)AES有若干模式。其中的CBC模式因?yàn)槠浒踩远籘LS(就是https的加密標(biāo)準(zhǔn))和IPSec(win采用的)作為技術(shù)標(biāo)準(zhǔn)。簡單地說,CBC使用密碼和salt(起擾亂作用)按固定算法(md5)產(chǎn)生key和iv。然后用key和iv(初始向量,加密第一塊明文)加密(明文)和解密(密文)。

下面介紹python實(shí)現(xiàn)的AES加密解密實(shí)例,這里采用CBC模式,用到了pycrypto‎模塊

安裝:

pip install Crypto
pip install binascii

實(shí)現(xiàn):

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#@author: rui.xu
#這里使用pycrypto?庫
#按照方法:easy_install pycrypto?
from Crypto.Cipher import AES
from binascii import b2a_hex, a2b_hex
class prpcrypt():
  def __init__(self,key):
    self.key = key
    self.mode = AES.MODE_CBC
  #加密函數(shù),如果text不足16位就用空格補(bǔ)足為16位,
  #如果大于16當(dāng)時不是16的倍數(shù),那就補(bǔ)足為16的倍數(shù)。
  def encrypt(self,text):
    cryptor = AES.new(self.key,self.mode,b'0000000000000000')
    #這里密鑰key 長度必須為16(AES-128),
    #24(AES-192),或者32 (AES-256)Bytes 長度
    #目前AES-128 足夠目前使用
    length = 16
    count = len(text)
    if count < length:
      add = (length-count)
      #\0 backspace
      text = text + ('\0' * add)
    elif count > length:
      add = (length-(count % length))
      text = text + ('\0' * add)
    self.ciphertext = cryptor.encrypt(text)
    #因?yàn)锳ES加密時候得到的字符串不一定是ascii字符集的,輸出到終端或者保存時候可能存在問題
    #所以這里統(tǒng)一把加密后的字符串轉(zhuǎn)化為16進(jìn)制字符串
    return b2a_hex(self.ciphertext)
  #解密后,去掉補(bǔ)足的空格用strip() 去掉
  def decrypt(self,text):
    cryptor = AES.new(self.key,self.mode,b'0000000000000000')
    plain_text = cryptor.decrypt(a2b_hex(text))
    return plain_text.rstrip('\0')
if __name__ == '__main__':
  pc = prpcrypt('keyskeyskeyskeys') #初始化密鑰
  import sys
  e = pc.encrypt(sys.argv[1]) #加密
  d = pc.decrypt(e) #解密
  print "加密:",e
  print "解密:",d

ValueError: IV must be 16 bytes long            windows下默認(rèn)會報這個錯,

cryptor = AES.new(self.key,self.mode,b'0000000000000000')

  實(shí)例化后面加上后面那個就Ok了

PS:關(guān)于加密解密感興趣的朋友還可以參考本站在線工具:

MD5在線加密工具:
http://tools.jb51.net/password/CreateMD5Password

迅雷、快車、旋風(fēng)URL加密/解密工具:
http://tools.jb51.net/password/urlrethunder

在線散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt

在線MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha

在線sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.jb51.net/password/sha_encode

希望本文所述對大家Python程序設(shè)計有所幫助。

相關(guān)文章

  • 關(guān)于自動化測試框架pytest的Fixture固件

    關(guān)于自動化測試框架pytest的Fixture固件

    這篇文章主要介紹了關(guān)于自動化測試框架pytest的Fixture固件,Fixture它其實(shí)就是一些函數(shù),會在執(zhí)行測試方法/測試函數(shù)前后加載運(yùn)行它們,需要的朋友可以參考下
    2023-03-03
  • python實(shí)現(xiàn)聊天小程序

    python實(shí)現(xiàn)聊天小程序

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)聊天小程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • python屬于哪種語言

    python屬于哪種語言

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于python屬于哪種語言的一篇基礎(chǔ)內(nèi)容文章,有興趣的朋友們可以參考下。
    2020-08-08
  • Python實(shí)現(xiàn)控制臺進(jìn)度條功能

    Python實(shí)現(xiàn)控制臺進(jìn)度條功能

    這篇文章主要介紹了Python實(shí)現(xiàn)控制臺進(jìn)度條功能,Python中如何寫控制臺進(jìn)度條,本文為大家揭曉,感興趣的小伙伴們可以參考一下
    2016-01-01
  • 多個python文件調(diào)用logging模塊報錯誤

    多個python文件調(diào)用logging模塊報錯誤

    這篇文章主要介紹了多個python文件調(diào)用logging模塊產(chǎn)生錯誤,需要的朋友可以參考下
    2020-02-02
  • python使用pymongo與MongoDB基本交互操作示例

    python使用pymongo與MongoDB基本交互操作示例

    這篇文章主要介紹了python使用pymongo與MongoDB基本交互操作,結(jié)合實(shí)例形式詳細(xì)分析了python基于pymongo庫實(shí)現(xiàn)與MongoDB基本交互相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2020-04-04
  • 詳解Python nose單元測試框架的安裝與使用

    詳解Python nose單元測試框架的安裝與使用

    本篇文章主要介紹了詳解Python nose單元測試框架的安裝與使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • Python實(shí)現(xiàn)動態(tài)繪圖的示例詳解

    Python實(shí)現(xiàn)動態(tài)繪圖的示例詳解

    matplotlib中的animation提供了動態(tài)繪圖功能,這篇文章主要為大家詳細(xì)介紹了Python如何利用matplotlib實(shí)現(xiàn)動態(tài)繪圖,感興趣的可以了解一下
    2023-05-05
  • Matplotlib與NumPy結(jié)合使用技術(shù)代碼和案例詳解

    Matplotlib與NumPy結(jié)合使用技術(shù)代碼和案例詳解

    這篇文章主要介紹了Matplotlib和NumPy的基本使用方法,并通過一些具體的案例展示了如何將它們結(jié)合使用來處理和可視化數(shù)據(jù),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-12-12
  • Python實(shí)現(xiàn)的密碼強(qiáng)度檢測器示例

    Python實(shí)現(xiàn)的密碼強(qiáng)度檢測器示例

    這篇文章主要介紹了Python實(shí)現(xiàn)的密碼強(qiáng)度檢測器,結(jié)合實(shí)例形式分析了Python密碼強(qiáng)度檢測的原理與實(shí)現(xiàn)方法,涉及Python字符串運(yùn)算與轉(zhuǎn)換、判斷等相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08

最新評論

曲沃县| 宝坻区| 洮南市| 新巴尔虎左旗| 安平县| 菏泽市| 和平县| 绥阳县| 霍林郭勒市| 固原市| 万全县| 福鼎市| 凤阳县| 拜泉县| 兴城市| SHOW| 公主岭市| 惠安县| 金华市| 汉沽区| 琼中| 台东市| 和田市| 尉氏县| 新巴尔虎左旗| 金华市| 乌兰县| 昭平县| 乌兰浩特市| 迁西县| 临高县| 商丘市| 中牟县| 金平| 綦江县| 临邑县| 安达市| 彰化市| 崇义县| 米林县| 盖州市|