博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AES加密
阅读量:6371 次
发布时间:2019-06-23

本文共 1034 字,大约阅读时间需要 3 分钟。

由于mysql目前的仅支持aes ecb加密方法,不能使用mysql直接处理cbc数据只能用python来搞定了

AES输入的加密字符必须是16的倍数,php的默认补零,所以解密的时候还需要rtrim掉零。python没有自动做这件事情,所以要自己补零。

脚本内容

import sys,binascii

from Crypto.Cipher import AES

#python没有自动补足功能,将不符合16位补充

def length(string):
   padding = '\0'
   length = 16
   count = len(string)
   if count < length:
       add = (length - count)
       string += (padding * add)
   elif count > length:
       add = (length - (count % length))
       string += (padding * add)
   return string
key = 'keyscode'
iv = '1234567890123456'
aes_key = length(key)
aes_iv = length(iv)
data = sys.argv[1]#加密原始数据传递
aes_data = length(data)
###encode string
encobj = AES.new(aes_key, AES.MODE_CBC, aes_iv)
ciphertext1 = encobj.encrypt(aes_data)
aes_code = ciphertext1.encode('hex')
###decode string
ciphertext = binascii.unhexlify(aes_code)
decobj = AES.new(aes_key, AES.MODE_CBC, aes_iv)
aes_dec = decobj.decrypt(ciphertext)
print 'LOWER AES_ENCODE:  ' +  aes_code
print 'UPPER AES_ENCODE:  ' +  aes_code.upper()
print 'UPPER AES_DECODE:  '  + aes_dec

下载:https://pypi.python.org/pypi/pycrypto

参考资料:

加密算法资料:

转载地址:http://yuuqa.baihongyu.com/

你可能感兴趣的文章
一地鸡毛 OR 绝地反击,2019年区块链发展指南
查看>>
卢森堡大学发布RepuCoin系统,可破解区块链51%攻击
查看>>
国内云计算厂商众生相:四大阵营十几家企业生存盘点
查看>>
细说Unicode(一) Unicode初认识
查看>>
Node.js有了新的管理者
查看>>
Java 20年:历史与未来
查看>>
彻底理解Javascript中的原型链与继承
查看>>
腾讯最大规模裁撤中层干部,让贤年轻人
查看>>
如何:强化 TCP/IP 堆栈安全
查看>>
Spring3 MVC中使用Swagger生成API文档
查看>>
FastCGI PHP on Windows Server 2003
查看>>
LimeSDR Getting Started Quickly | LimeSDR上手指南
查看>>
JSP标签JSTL的使用(1)--表达式操作
查看>>
SAP顾问的人脉比技术更为重要
查看>>
FI/CO PA考试试卷
查看>>
汽车介质应用非常严苛?没关系,新技术带来的高精度传感器十分适应!
查看>>
天合光能 - 用计算捕捉“光的能量”
查看>>
使用sysbench压力测试MySQL(一)(r11笔记第3天)
查看>>
css知多少(11)——position
查看>>
【Spring】定时任务详解实例-@Scheduled
查看>>