高级加密标准(aes)numpy实现

npaes的Python项目详细描述


不良资产

高级加密标准(AES)numpy实现。

警告:不完整&尚不适合生产使用。请参阅下面的“注意”部分。


SupportsPython 2.7 | 3.5 | 3.6 | 3.7
Latest Releaselatest release
Package Statusstatus
Licenselicense

这个包实现了联邦信息处理标准出版物197(“fips197”)中指定的高级加密标准(aes):

https://csrc.nist.gov/publications/detail/fips/197/final

此实现完全且仅基于fips197。tests/test_npaes.py中的测试使用fips197附录a、b和c中的全套示例向量。npaes支持aes-128、aes-192和aes-256。

它唯一的依赖是numpy。除了在c中实现的numpy部分之外,它不使用openssl或任何其他c库。

其他技术说明可在npaes/__init__.py的docstring中找到。

小心

这个包裹不完整。虽然使用fips197示例向量对原始加密和解密进行了全面测试,但由于以下原因,原始加密和解密是不完整的:

  • 它不允许您指定initialization vector(iv)。
  • 它不允许您指定block mode
  • 它在大多数地方都进行了优化,但并不是全部,而且几乎没有机会像openssl中优化的ansi c版本那样快。

基本用法

importosfromnpaesimportAES# Key must be bytes type and 128, 192, or 256 bits# Or use hashlib.sha256() for an off-length keykey=os.urandom(32)# 256-bit key# Your plaintext length must be bytes and a multiple of 16 lengthmsg=b"a secret message goes here"+6*b"\x03"cipher=AES(key)ciphertext=cipher.encrypt(msg)print(ciphertext)# b'a\x85cna\xc2\xeeu\xe9S\xdf\xabE\x0c\xda\xf4\x19\x11\xa3!\xdd\x96-\x85\x10f\xd4\x18;s%\x81'print(cipher.decrypt(ciphertext))# b'a secret message goes here\x03\x03\x03\x03\x03\x03'

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

推荐PyPI第三方库


热门话题
java如何在片段中使用listView?   java Android Studio:在不同的活动中使用“OnClick”方法?   设置IntelliJ时,java字符未正确显示   如何使用Java解析每个不同键和值的JSON对象?   简单的java AI响应程序?   java更改进程中不确定对话框的颜色   java类型不匹配:无法在eclipse中从双精度转换为整数   java如何理解我的类的属性是否已更改   xml Java Jena API获取另一个类的属性   java在JPanel上缩放和加载地图分幅   java在安卓 studio上使用工具栏的正确方法是什么?   java使用基于iText Core的OpenPdf从pdf页面删除或更新添加的图像图标   JavaFacebookGraphAPI在第一次请求时返回400,在第二次请求时返回200,这两个请求是相同的   java如何在DynamoDB中实现选择和插入项作为一个事务   java如何使用MAVEN运行方法?   (如何)在Java三元运算符语句中捕获异常?   java如何使用Hibernate SchemaExport和BeanValidation约束导出数据库模式?   java如何在weblogic中使用hibernate代替eclipselink?   Java读socketTcp更快