一种使用speck和hmac-sha256对相关数据进行认证加密的算法。

spectral-aead的Python项目详细描述


光谱AEAD

谱是对相关数据进行认证加密的算法; 它使用 SpeckCTR mode中 作为基础密码(具有128位块大小和128位密钥 尺寸)以及 HMAC-SHA256Encrypt-then-MAC中 建设。

这个包提供了经过测试的、性能良好的python 3cffi绑定到 谱的实现,包括 加密和解密。

安装

可以使用pip或包含的^{tt2}安装此包$ 脚本:

# Using pip
pip install spectral-aead

# Using setup.py
python setup.py install

用法

fromspectralimport*# Demonstration key, nonce, plaintext and associated datakey=b"\0"*spectral.KEY_SIZEnonce=b"\0"*spectral.NONCE_SIZEplaintext=b"\0"*16associated=b"\0"*16# Spectral simplified encryptionencrypted=encrypt(key,plaintext,associated)# Associated data is optional# Spectral simplified decryptioncomputed_plaintext=decrypt(key,encrypted,associated)# Raises RuntimeError if any parameter has been tampered withassertplaintext==computed_plaintext# Spectral disjoint encryptionciphertext,mac=encrypt_disjoint(key,nonce,plaintext,associated)# Associated data is optional# Spectral disjoint decryptioncomputed_plaintext=decrypt_disjoint(key,nonce,ciphertext,mac,associated)# Raises RuntimeError if any parameter has been tampered withassertplaintext==computed_plaintext

许可证

BSD 3-Clause License

Copyright (c) 2018, Phil Demetriou
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
  list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,
  this list of conditions and the following disclaimer in the documentation
  and/or other materials provided with the distribution.

* Neither the name of the copyright holder nor the names of its
  contributors may be used to endorse or promote products derived from
  this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

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

推荐PyPI第三方库


热门话题
java使用Eclipse Helios for Web项目   java指定行。作为编译器设置的分隔符?   osm映射中带有osmdroid的java标记   java Android ClassNotFoundException在路径:DexPathList上未找到类   java从j2me调用GWT方法   更新到java 8后的aspectj问题   如何仅从根元素java,com提取文本内容。滴虫软件。是的。html   安卓公司。谷歌。火基。数据库DatabaseException:未能转换java类型的值。将字符串改为长字符串   从java中的方法返回arraylist变量   java如果将引用重新分配给同步块内的锁对象,会是什么?   java下载。使用spring mvc的资源文件中的xlsx文件   java Eclipse提供了什么工具来运行Eclipse中未包含的程序?   spring boot Java泛型如何读取传递给泛型方法的类型上的字段或调用方法   Javacard中的javaecdsa签名