问题标签 [python-cryptography]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1510 浏览

python-3.x - 使用 Python 的加密模块创建我自己的证书时出现 Chrome NET::err_cert_common_name_invalid 错误

我正在创建一个由自己的自签名根授权签名的证书。这用于为作为本地应用程序托管的域提供服务,该应用程序通过/etc/hosts文件映射到本地主机地址。当在浏览器中请求网站时,我的本地应用程序(用 编写flask)提供应用程序内容,同时提供我为域创建的自签名证书。我在Python'sCryptography模块中编写了代码,它遵循以下基本步骤:

a) 创建一个具有自己的自签名根权限,.CRT并且.KEY

b)CSR为我的域名生成一个单独的私钥后生成一个对应的

c) 让我的证书颁发机构签署CSR并生成证书。

但是,在 Chrome 中,我收到“ERR:CERT_COMMON_NAME_INVALID”错误。在线阅读,似乎要消除这种情况,需要Subject Alternative Field在 CSR 请求中指定一个域名,并且它必须与Common Name. 然而,这已经在代码内部完成(如generate_csr函数中所见)。此外,我已经在 Chrome 的根存储中导入了根证书。任何人都可以帮助这里可能是什么错误?

0 投票
1 回答
2847 浏览

python - Python Cryptography 导出密钥到 DER

在过去使用 PyCrypto 时,我能够执行以下操作来生成 RSA 公钥的指纹:

如果没有 PyCrypto,我怎样才能达到同样的效果?


编辑

我提供的pub_rsa_key.perm文件的内容,即:

PyCrypto 被认为不安全并且不再维护,所以我切换到 Python 的 Cryptography,但它似乎没有足够的功能。

  • Pythons Cryptography API 中是否有我错过的类似功能?
  • PyCryptoDome 是否可能是 PyCrypto 用于实现此功能的值得(稳定和安全)的替代品?
  • 如果以上都不是,是否可以通过自写函数以 DER 格式导出该密钥?

执行导出的任何文档或搜索词都会有所帮助。


编辑 2
Maarten Bodewes 的评论(谢谢)把我带到了一个似乎是我正在寻找的地方。但是 DER 导出的结果不同:

在哪里

这是从 Py2 迁移到 Py3 的努力——请注意这两个示例使用不同的 Python 版本。编码在这里可能是一个问题吗?

0 投票
3 回答
5066 浏览

python - 如何/如何使用 python 和密码模块生成 PKCS#12 文件?

如何/如何使用 python 和密码模块生成 PKCS#12 文件?

使用所述模块为私钥生成 .pem 文件的内容非常容易:

也很容易为关联的证书生成 .cer/.pem 文件的内容:

但我需要将它们(和它们的链)打包在一个 .p12(PKCS12 文件)上。所述模块记录了如何解析/使用 PKCS12 格式,但没有(我能找到)关于如何生成它们的信息。

我对 PKI 东西的理解是偶然的,所以也许我只是没有在文档中搜索正确的关键字?

可以使用在 Linux 上的命令行创建 .p12 文件

所以我可以用 subprocess/cmd 包装这样的调用,并弄乱临时文件/管道。我希望将它全部保存在内存/python中。

我应该考虑一个不同的python TLS库,可以做到这一点吗?

0 投票
1 回答
203 浏览

python - 如何在 Python 的密码学模块中访问私有 RSA 密钥的组件?

我没有找到 API,但因为它似乎委托给 OpenSSL,也许我不明白它是如何工作的。

我正在寻找的是这个 [1] 的第一个答案,但在 Python 中,使用刚刚生成的 RSA 密钥对,出于安全原因,从未将其写入磁盘。

[1]如何从 RSA 私钥中提取私钥组件 $N$ 和 $D$?

0 投票
1 回答
4952 浏览

python - 尝试查询 mssql 数据库时出现 Airflow Fernet_Key 问题

我对气流很陌生。我已经多次阅读了文档,在网上阅读了许多 S/O 问题和许多随机文章,但还没有解决这个问题。我有一种超级简单的感觉,我做错了。我有适用于 Windows 的 Docker,我提取了puckel/docker-airflow图像并运行了一个暴露了端口的容器,这样我就可以从我的主机上访问 UI。我正在运行另一个容器mcr.microsoft.com/mssql/server,我在该容器上恢复了 WideWorldImporters 示例数据库。在 Airflow UI 中,我已经能够成功地创建到该数据库的连接,甚至可以从 Data Profiling 部分对其进行查询。检查下面的图像: 连接创建 成功查询连接

因此,虽然这可行,但我的 dag 在第二个任务中失败了sqlData。这是代码:

最初的错误是:

我注意到这与密码学有关,我继续运行pip install cryptographyand pip install airflow[crytpo],两者都返回了完全相同的结果,通知我要求已经得到满足。最后,我找到了说我只需要生成一个 fernet_key 的东西。我的airflow.cfg 文件中的默认键是fernet_key = $FERNET_KEY. 所以从我运行的容器中的cli:

并得到了我替换的代码$FERNET_KEY。我重新启动了容器并重新运行了 dag,现在我的错误是:

初始加密文档扫描中的哪个与兼容性有关?

我现在很迷茫,并决定问这个问题,看看我是否可能走错路来解决这个问题。任何帮助将不胜感激,因为 Airflow 看起来很棒。

0 投票
1 回答
450 浏览

python - Python:从数组生成私钥?

我是 python 和密码学的新手。我想从变量生成 PrivateKey。在寻找了这么多选项之后,我才知道我只能从Random函数生成密钥对。

这是我的变量

所以我的问题是,

  1. 是否可以从序列/数据生成 PrivateKey
  2. 如果是这样,任何关于我该如何继续的建议
  3. 最后但并非最不重要的一点是,我应该使用哪种算法(RSA/ECC)
0 投票
1 回答
911 浏览

encryption - MD5 公钥-私钥加密 (python)

我正在尝试使用非对称加密来加密我的数据。我选择了 MD5 作为算法。PS:我知道 MD5 碰撞。

我正在关注这个博客来加密和解密我的数据。这使用 SHA256。我也可以使用 SHA1、SHA512 成功运行代码,但不能使用 MD5。

每当,我将算法更改为 MD5,它说

应该使用哪个填充来使用 MD5 加密数据?

我的代码:-

0 投票
1 回答
151 浏览

python - 如何使用 RSAPublicKey 字段腌制 namedtuple 子类

我正在尝试序列化子类 namedtuple 并保存对RSAPublicKey对象的引用的对象。

  • 我将一个命名元组子类化以创建不可变对象实例。

  • 我班级的一个字段包含对RSAPublicKey类型对象的引用。

  • 我定义 __setstate__(self) 来序列化 RSAPublicKey 对象以进行酸洗。

类实现

正在使用

密钥生成和序列化

我收到以下错误。

当我将我的类更改为子类对象时,序列化工作正常。

0 投票
2 回答
254 浏览

python - 像这样将字节转换为: (b'\xe4\x06-\x95\xf5!P4' ) 到 python 中的零和一的二进制字符串

好吧,我有一个任务是在 CBC 模式下实现 DES 算法的操作模式:我被困在加密函数的输出给出如下字节的点:b'\xe4\x06-\x95\xf5!P4 '(我正在使用 Crypto.Cipher 的 DES 库)

我不知道该表示是什么或如何将其转换为由零和一组成的二进制字符串,以将其与第二个纯文本进行异或。

任何帮助将不胜感激

0 投票
0 回答
93 浏览

python - 无法导入 certificate_transparency

使用 python 2.7 时在 AWS Lambda 中出现以下错误

cannot import certificate_transparency

当我再次点击 lambda API 时,以下错误开始出现:

cannot import retry

我正在使用以下软件包:

oci==2.2.5

future==0.17.1

cffi==1.12.3

在分析中,问题似乎出在 OCI 使用的加密包上。我试图显式安装密码学 2.4.2,但得到同样的错误。

解决此问题的帮助将不胜感激。