zoukankan      html  css  js  c++  java
  • python aes加解密

    python AES加密解密

    python AES 双向对称加密解密

    Python中进行Base64编码和解码

    # encoding:utf-8
    import base64
    from Crypto.Cipher import AES
    from Crypto import Random
    
    def encrypt(data, password):
    	bs = AES.block_size
    	pad = lambda s: s + (bs - len(s) % bs) * chr(bs - len(s) % bs)
    	iv = Random.new().read(bs)
    	cipher = AES.new(password, AES.MODE_CBC, iv)
    	data = cipher.encrypt(pad(data))
    	data = iv + data
    	return data
    
    def decrypt(data, password):
    	bs = AES.block_size
    	if len(data) <= bs:
    		return data
    	unpad = lambda s : s[0:-ord(s[-1])]
    	iv = data[:bs]
    	cipher = AES.new(password, AES.MODE_CBC, iv)
    	data  = unpad(cipher.decrypt(data[bs:]))
    	return data 
    
    if __name__ == '__main__':
    	data = 'd437814d9185a290af20514d9341b710'
    	password = '78f40f2c57eee727a4be179049cecf89' #16,24,32位长的密码
    	encrypt_data = encrypt(data, password)
    	encrypt_data = base64.b64encode(encrypt_data)
    	print 'encrypt_data:', encrypt_data
    
    
    	encrypt_data = base64.b64decode(encrypt_data)
    	decrypt_data = decrypt(encrypt_data, password)
    	print 'decrypt_data:', decrypt_data
    
  • 相关阅读:
    分糖果
    数字游戏
    错误票据
    包子凑数
    带分数
    翻硬币
    核桃的数量
    快速幂
    公倍数与素数筛选
    mysql 查询当天当周当月的数据
  • 原文地址:https://www.cnblogs.com/jingzhishen/p/5796683.html
Copyright © 2011-2022 走看看