Python使用PyCrypto实现AES加密功能示例
2018-03-28 17:01
956 查看
使用PyCrypto实现AES加密功能:#!/usr/bin/env python
from Crypto.Cipher import AES
import base64
import os
# the block size for the cipher object; must be 16, 24, or 32 for AES
BLOCK_SIZE = 32
# the character used for padding--with a block cipher such as AES, the value
# you encrypt must be a multiple of BLOCK_SIZE in length. This character is
# used to ensure that your value is always a multiple of BLOCK_SIZE
PADDING = '{'
# one-liner to sufficiently pad the text to be encrypted
pad = lambda s: s + (BLOCK_SIZE - len(s) % BLOCK_SIZE) * PADDING
# one-liners to encrypt/encode and decrypt/decode a string
# encrypt with AES, encode with base64
EncodeAES = lambda c, s: base64.b64encode(c.encrypt(pad(s)))
DecodeAES = lambda c, e: c.decrypt(base64.b64decode(e)).rstrip(PADDING)
# generate a random secret key
secret = os.urandom(BLOCK_SIZE)
# create a cipher object using the random secret
cipher = AES.new(secret)
# encode a string
encoded = EncodeAES(cipher, 'passwordi123')
print 'Encrypted string:', encoded
# decode the encoded string
decoded = DecodeAES(cipher, encoded)
print 'Decrypted string:', decoded
from Crypto.Cipher import AES
import base64
import os
# the block size for the cipher object; must be 16, 24, or 32 for AES
BLOCK_SIZE = 32
# the character used for padding--with a block cipher such as AES, the value
# you encrypt must be a multiple of BLOCK_SIZE in length. This character is
# used to ensure that your value is always a multiple of BLOCK_SIZE
PADDING = '{'
# one-liner to sufficiently pad the text to be encrypted
pad = lambda s: s + (BLOCK_SIZE - len(s) % BLOCK_SIZE) * PADDING
# one-liners to encrypt/encode and decrypt/decode a string
# encrypt with AES, encode with base64
EncodeAES = lambda c, s: base64.b64encode(c.encrypt(pad(s)))
DecodeAES = lambda c, e: c.decrypt(base64.b64decode(e)).rstrip(PADDING)
# generate a random secret key
secret = os.urandom(BLOCK_SIZE)
# create a cipher object using the random secret
cipher = AES.new(secret)
# encode a string
encoded = EncodeAES(cipher, 'passwordi123')
print 'Encrypted string:', encoded
# decode the encoded string
decoded = DecodeAES(cipher, encoded)
print 'Decrypted string:', decoded
Encrypted string: YmJDMxhuKbGgEaQMu7neHqSe0LmvDKTtmaFRJxuD/kw= Decrypted string: passwordi123
相关文章推荐
- Python使用PyCrypto实现AES加密功能示例
- python3.6 实现AES加密的示例(pyCryptodome)
- java使用Hex编码解码实现Aes加密解密功能示例
- windows中使用Python进行AES加密解密-加密解密功能实现
- C#使用DES和AES实现加密解密功能示例
- Python使用win32 COM实现Excel的写入与保存功能示例
- Python使用win32com实现的模拟浏览器功能示例
- Python使用pylab库实现绘制直方图功能示例
- Python下实现的RSA加密/解密及签名/验证功能示例
- 使用Python进行AES加密和解密的示例代码
- Python基于pycrypto实现的AES加密和解密算法示例
- 在Python中使用M2Crypto模块实现AES加密的教程
- 使用python实现strcmp函数功能示例
- 使用python实现strcmp函数功能示例
- Python使用itertools模块实现排列组合功能示例
- Python网络编程使用select实现socket全双工异步通信功能示例
- python3.6 实现AES加密----pyCryptodome
- Robot Framework实现使用PyCrypto调用AES加密文件
- Python使用matplotlib实现的图像读取、切割裁剪功能示例
- python AES-16位加密解密功能实现