python cryptography key加密_Cryptography中的对称密钥加解密:fernet算法探究

本文探讨了Python的cryptography库中的fernet模块,它提供了一种高层次的对称加密抽象,基于AES算法的CBC模式和PKCS7填充,集成HMAC验证和密钥过期机制。通过示例展示了如何使用fernet进行加密和解密操作,简化了加解密过程。
摘要由CSDN通过智能技术生成

原创文章,欢迎转发朋友圈,转载请注明出处

cryptography是python语言中非常著名的加解密库,在算法层面提供了高层次的抽象,使用起来非常简单、直观,pythonic,同时还保留了各种不同算法的低级别接口,保留灵活性。

我们知道加密一般分为对称加密(Symmetric Key Encryption)和非对称加密(Asymmetric Key Encryption)。,各自对应多种不同的算法,每种算法又有不同的密钥位长要求,另外还涉及到不同的分组加密模式,以及末尾补齐方式。因此需要高层次的抽象,把这些参数封装起来,让我们使用时,不用关心这么多参数,只要知道这么用足够安全就够了。

对称加密又分为分组加密和序列加密,本文只讨论对称分组加密。

主流对称分组加密算法:DES、3DES、AES

主流对称分组加密模式:ECB、CBC、CFB、OFB

主流填充标准:PKCS7、ISO 10126、ANSI X.923、Zero padding

在cryptography库中,对称加密算法的抽象是fernet模块,包括了对数据的加解密以及签名验证功能,以及密钥过期机制。

该模块采用如下定义:

加解密算法为AES,密钥位长128,CBC模式,填充标准PKCS7

签名算法为SHA256的HMAC,密钥位长128位

密钥可以设置过期时间

使用fernet加解密的例子如下:

>>> importos>>> from cryptography.hazmat.primitives.ciphers importCipher, algorithms, mode

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值