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

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

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

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

AES只是個(gè)基本算法,實(shí)現(xiàn)AES有若干模式。其中的CBC模式因?yàn)槠浒踩远籘LS(就是https的加密標(biāo)準(zhǔn))和IPSec(win采用的)作為技術(shù)標(biāo)準(zhǔn)。簡(jiǎ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)時(shí)不是16的倍數(shù),那就補(bǔ)足為16的倍數(shù)。
  def encrypt(self,text):
    cryptor = AES.new(self.key,self.mode,b'0000000000000000')
    #這里密鑰key 長(zhǎng)度必須為16(AES-128),
    #24(AES-192),或者32 (AES-256)Bytes 長(zhǎng)度
    #目前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加密時(shí)候得到的字符串不一定是ascii字符集的,輸出到終端或者保存時(shí)候可能存在問題
    #所以這里統(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)會(huì)報(bào)這個(gè)錯(cuò),

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

  實(shí)例化后面加上后面那個(gè)就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

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

相關(guān)文章

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

    關(guān)于自動(dòng)化測(cè)試框架pytest的Fixture固件

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

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

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

    python屬于哪種語言

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

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

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

    多個(gè)python文件調(diào)用logging模塊報(bào)錯(cuò)誤

    這篇文章主要介紹了多個(gè)python文件調(diào)用logging模塊產(chǎn)生錯(cuò)誤,需要的朋友可以參考下
    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單元測(cè)試框架的安裝與使用

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

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

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

    matplotlib中的animation提供了動(dòng)態(tài)繪圖功能,這篇文章主要為大家詳細(xì)介紹了Python如何利用matplotlib實(shí)現(xiàn)動(dòng)態(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)度檢測(cè)器示例

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

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

最新評(píng)論

敦煌市| 缙云县| 新津县| 汤阴县| 体育| 虞城县| 龙里县| 晋城| 宜丰县| 揭阳市| 中卫市| 兴文县| 绥德县| 漾濞| 交城县| 大新县| 日照市| 沂水县| 德州市| 高阳县| 株洲市| 宜阳县| 孟连| 大冶市| 南皮县| 潼关县| 永州市| 科技| 安阳市| 昌都县| 乌兰察布市| 武穴市| 麦盖提县| 炎陵县| 贵定县| 丽水市| 衡山县| 桂林市| 镇原县| 朝阳区| 湖口县|