没有项目描述

aes-keywrap的Python项目详细描述


AES密钥包

rfc 3394 aes密钥包装/解包的实现

http://www.ietf.org/rfc/rfc3394.txt

此外,根据RFC 5649,替代IV

http://www.ietf.org/rfc/rfc5649.txt

这是一种对称密钥加密算法。它应该只被使用 加密密钥(短且全局唯一的字符串)

在文档中,用于这种算法的密钥是 通常称为kek(密钥加密密钥),用于区分 它来自数据加密密钥。

用法

importbinasciifromaes_keywrapimportaes_wrap_key,aes_unwrap_keyKEK=binascii.unhexlify("000102030405060708090A0B0C0D0E0F")CIPHER=binascii.unhexlify("1FA68B0A8112B447AEF34BD8FB5A7B829D3E862371D2CFE5")PLAIN=binascii.unhexlify("00112233445566778899AABBCCDDEEFF")assertaes_unwrap_key(KEK,CIPHER)==PLAINassertaes_wrap_key(KEK,PLAIN)==CIPHER

为什么要使用特殊的密钥加密算法?

一句话:大小。假设钥匙足够高 熵是全局唯一的,并且足够小 不需要流加密,AES密钥包可以避免 增大大小的iv(初始值)或nonce 密文的。这可能是一个重要的 节省—如果加密的数据是32 字节AES-256密钥,AES-GCM将导致 60字节密文(87%开销),将导致AES-CTR或AES-CBC 在一个48字节的密文中(50%的开销),也不会提供 经过身份验证的加密,但AES密钥包 会产生32字节的密文(无开销)。

在一个生成了许多密钥的应用程序中 和加密的(例如 数据库中的每一行),此开销可能非常大。

另一个重要的用例是与 现有系统。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在java中的字符串字符下打印星号(*)   java在比较数据后得到错误的结果   java如何在使用JSP创建的网站中创建父子关系和处理?   java配置单元UDF:无法执行求值方法   java GAE项目Intellij远程调试在关闭时不释放端口   java按钮上的放大和缩小功能点击JfreeChart折线图?   java Selenium Chrome Web驱动程序SessionNotCreatedException   java由ADFactoryBuilder生成的线程工厂是线程安全的吗?   java将字符串[]传递给另一个类Android(使用intent)   我为什么要嘲笑java?   JavaLiferay门户不将对象从流程阶段发送到jsp   java我想在单击每个树节点时将要添加的信息放入jpanel jscrollpane中   在Java中模拟数组引用(即对引用的引用)的按引用传递   Jackson将JSON属性反序列化为不同的Java对象   java使用JSP/servlet在网页上显示Excel工作表?   仿射变换Java:使用仿射变换时游戏速度减慢   Servlet JBoss AS 7的java EJB注入   在Oracle数据库中使用Java的plsql   java管理Maven项目中的库依赖项   JavaEclipseLink(JPA)异常:复合主键@JoinColumn