AES(高级加密)

AES(高级加密)

#3.6安装  pip3 install pycryptodome
#mac     pip3 install pycrypto

a. 事例: 

############################### 加密 ##############################

    from Crypto.Cipher import AES
    def encrypt(message):
        key = b‘dfdsdfsasdfdsdfs‘                       #key必须是16的整数倍
        cipher = AES.new(key, AES.MODE_CBC, key)        #创建对象
        ----------------------------------------------
        #先转成字节,把数据拼够16字节的整数倍
        ba_data = bytearray(message,encoding=‘utf-8‘)   #把数据转成bytearray(byte的数组),bytearray只能追加数字,默认把数字转成字节
        v1 = len(ba_data)
        v2 = v1 % 16
        if v2 == 0:
            v3 = 16
        else:
            v3 = 16 - v2                                #v3是追加的长度
        for i in range(v3):
            ba_data.append(v3)                          #bytearray只能追加数字,默认把数字转成字节
        final_data = ba_data.decode(‘utf-8‘)
        ----------------------------------------------
        msg = cipher.encrypt(final_data)                #要加密的字符串,必须是16个字节或16个字节的倍数,加密后是byte格式
        return msg

############################### 解密 ##############################
    def decrypt(msg):
        key = b‘dfdsdfsasdfdsdfs‘
        cipher = AES.new(key, AES.MODE_CBC, key)
        result = cipher.decrypt(msg)                    #把加密后的字节解密成不加密的字节
        data = result[0:-result[-1]]
        return str(data,encoding=‘utf-8‘)

wuSir  

 

时间: 2024-10-13 01:58:45

AES(高级加密)的相关文章

AES高级加密标准简析

1 AES高级加密标准简介 1.1 概述 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用.经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准.2006年,高级加密标准已然成为对称密钥加密中最流行的算法

高级加密标准AES的工作模式(ECB、CBC、CFB、OFB)

高级加密标准(Advanced Encryption Standard: AES)是美国国家标准与技术研究院(NIST)在2001年建立了电子数据的加密规范.它是一种分组加密标准,每个加密块大小为128位,允许的密钥长度为128.192和256位. ECB模式(电子密码本模式:Electronic codebook) ECB是最简单的块密码加密模式,加密前根据加密块大小(如AES为128位)分成若干块,之后将每块使用相同的密钥单独加密,解密同理. CBC模式(密码分组链接:Cipher-bloc

DES/AES/MD5加密方法

大家好: 今天有空研究了下大家都在喊的AES加密!还以为是什么深奥的东西呢!终于了解了,心中释然了!跟大家一起分享下吧!DES其实就是:数据加密标准 英文的缩写!就是个加密的标注而已,AES就是 高级加密标准 英文的缩写咯,大家都叫缩写叫惯了,搞得我们这些没接触的人一头雾水!心里还真憋屈的慌呢! 这是在搜集资料的时候拿了个例子练手,不过有个问题就是,把这代码放到文本里用CMD运行的时候出现了乱码情况!所幸的是注释,不影响效果!但是,程序要真遇到这样的情况的话,就得转码了,因为文本的编码是GBK的

第六章 高级加密标准

第六章 高级加密标准 美国国家技术研究所NIST在2001年发布了高级加密标准AES,一个对称分组密码算法,取代DES称为广泛使用的标准. 与公钥密码RSA相比,AES以及大多数的对称密码的结构都很复杂. AES中所有的运算是在8位的字节上进行的. 一个域是一个结合,在集合内进行加减乘除运算的结果,也不会离开该域.例如\(Z_p=\{0,1,2,3,\dots,p-1\}\),其中\(p\)是一个素数,然后该域上的操作是取模. 1. AES的结构 明文分组长度为128位即16字节(对明文进行分组

JAVA中AES对称加密和解密

AES对称加密和解密 package demo.security; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.util.Ba

Android接口安全 - RSA+AES混合加密方案

转载请注明出处: http://blog.csdn.net/aa464971/article/details/51034462 本文以Androidclient加密提交数据到Java服务端后进行解密为样例. 生成RSA公钥和密钥的方法请參考: http://blog.csdn.net/aa464971/article/details/51035200 Android端的加密思路须要4步: 1.生成AES密钥: 2.使用RSA公钥加密刚刚生成的AES密钥: 3.再使用第1步生成的AES密钥,通过A

JAVA实现AES的加密和解密算法

原文 JAVA实现AES的加密和解密算法 import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; /** * AES 是一种可逆加密算法,对用户的敏感信息加密处理 * 对原始数据进行AES加密后,在进行Base6

AES对称加密和解密

package demo.security; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.util.Base64; impor

正确使用AES对称加密

正确使用AES对称加密 经常我看到项目中有人使用了对称加密算法,用来加密客户或项目传输中的部分数据.但我注意到开发 人员由于不熟悉原理,或者简单复制网上的代码示例,有导致代码存在安全风险. 我经常遇到的问题,有如下: 如使用了过时的加密算法(如DES) 设置了不安全的加密模式(ECB) 不正确地处理初始向量(IV) 对称加密算法 算法 位长 建议 RC4 40 DES 56 3DES 112 AES 128 ? TL;DR: RC4/DES/3DES都 不符合 加密/破解的安全性要求. DES是