问题标签 [pem]
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.
php - 如何解密以前通过 Crypto++ 加密的 OpenSSL 上的字符串?
编辑:我发现钥匙不是我在评论中所说的问题。我可以毫无问题地使用它们来加密和解密 OpenSSL 上的数据。
但我需要解密之前通过 Crypto++ 加密的 OpenSSL 上的字符串,但它不起作用。
我稍后会发布更多详细信息。
嗨,我已经使用 Crypto++ 生成的 RSA 公钥加密了一个字符串,现在我正在尝试(仍然不成功)通过 PHP 和 OpenSSL 对其进行解密。
这就是我正在做的事情:
- 非 base64 或十六进制编码的私钥存储在名为“rsa-private.key”的文件中
- 加密消息存储在“message.txt”中(十六进制编码)
第 1 步:通过以下方式加载私钥:$key = file_get_contents("rsa-private.key");
第 2 步:使用以下函数将密钥转换为 PEM 格式:
(stackoverflow.com/questions/1357569/)
第 3 步:准备密钥以供 OpenSSL 进一步使用:(没有任何问题)
第 4 步:获取消息并使用以下函数解码消息:
第 5 步:解密字符串:(不起作用)
$decrypteddata 始终为空。
我不知道为什么它不起作用。有人注意到我做错了什么吗?
php - PHP文件上传不断抛出错误
我正在将 rsa 私钥(.pem 文件)上传到我的网站并使用 fopen 读取内容,但最近我一遍又一遍地遇到同样的错误而没有多大意义。
HTML
上传.php
该网站不断返回错误:
警告:fopen(mykey.pem)[function.fopen]:无法打开流:第 38 行的 .... 中没有此类文件或目录
(这是 fopen 线)。它进入 fopen 状态的事实向我证明它确实上传但使用 fopen (也尝试使用 file_get_contents($_FILES['uploaded_file']['name']); 也未成功)返回错误。
什么大坨!
最后注意事项:
无论出于何种原因, fopen() 不喜欢读取 OpenSSL 证书并返回错误:
openssl_private_decrypt():提供的资源不是有效的 OpenSSL X.509/key 资源
但是,如果您使用 file_get_contents 它可以工作。
java - Apache HttpClient 和 PEM 证书文件
我想以编程方式访问需要客户端证书的站点,我在 PEM 文件中拥有该证书。在这个应用程序中,如果可以避免的话,我不想将它们添加到我的密钥库、使用 keytool 或 openssl。我需要直接在代码中处理它们。
我将如何“发送”带有请求的证书?
php - stream_context_set_option 的奇怪错误
我想连接 ssl 服务器。我附加了带有stream_context_set_option的ssl证书。
但它返回"check that your cafile/capath settings include details of your certificate".
apns-dev.pem 在同一个文件夹中。
如果我在顶部添加,效果很好。我不明白。证书文件的权限是 644
c++ - PEM 转换 (PKCS7) 到 DER - AKA Base64 C++ 问题
我刚刚完成了一些 OpenSSL/PKCS7 数字签名代码的编写,现在有了一个可用的 PEM 编码的 PKCS7 文件。因此,经过一番小小的战斗,我需要将该 PEM 转换为 DER 格式。事实证明这比我希望的要艰难。
OpenSSL 中有一些方便的方法,例如“PEM_write_bio_PKCS7_stream”来编写您的 PKCS7 对象。但是经过一些广泛的谷歌搜索和浏览一些头文件后,我似乎找不到任何东西来获取 PKCS7 对象并将其写入 DER 格式的任何东西(BIO、FILE、char*)。
所以感觉被打败了,我转而解析 PEM 文件中的页眉和页脚,并对内容进行 Base64 解码。作为检查,我使用 Java 和 BouncyCastle 完成了这项工作,并得到了我想要的。
这是我的代码。几乎每一个 Base64 解码器我都尝试过这样的事情......
进入...
这是那个代码...
有什么想法吗?
x509 - 如何将 .crt 转换为 .pem
如何将 .crt 转换为 .pem?
python - 为什么 Google 的 PEM 中剩下 40 个字符用于打包 Chrome 扩展
我最近一直试图弄清楚如何让 PyCrypto 识别由 Google Chrome 打包过程产生的 PEM。问题是标准的 importKey 方法会导致错误。经过相当长的过程,我终于意识到我可以通过对 DerSequence.decode 方法进行逆向工程来初步模拟导入(所有细节都在这里)。不幸的是,它给我留下了一个未解决的问题。
我可以得到导入的密钥,看起来还算一致,但我还剩下 40 个字符。
有谁知道为什么有这 40 个字符?忽略它们会导致某些私钥/公钥对出现问题吗?
c# - 如何获得给定 CSR 的密钥大小?
我正在使用Liping Share ASN1 Editor在 .net(c#) 中编写一个程序,它可以很好地解码给定的 CSR。
所以,我的问题是:如何获得给定 CSR 的位大小?(我想测试它是否为 1024 或更高)
我已经尝试过 .net X509Certificate 类,但它只适用于证书,不适用于 CSR。
不可能使用 Java 类或解析包含 CSR 解码器的网页。(尽管我已经认为这比解决问题要容易得多)
也许解决方案很简单,我就是不明白,但如果有人能给我建议,我将不胜感激!(过去两天谷歌太多了!!)
c++ - C++ OpenSSL 导出私钥
到目前为止,我已成功使用 SSL,但遇到了令人困惑的障碍。我生成了一个 RSA 密钥对,之前使用 PEM_write_bio_RSAPrivateKey(...) 来导出它们。然而,手册页声称该格式已过时(实际上它看起来与通常的 PEM 格式不同)。相反,它推荐 PEM_write_bio_PKCS8PrivateKey(...)。
但是 PEM_write_bio_PKCS8PrivateKey 接受 EVP_PKEY 对象。如何将我的 RSA* 密钥对转换为 EVP_PKEY* 结构以便在该函数中使用?
ret 始终为 0。使用较旧的 PEM_write_bio_RSAPrivateKey 对我有用。我希望导出我的密钥,使它们看起来像:
谢谢。
c# - 从字符串加载 .Net 中的 Jira 公共证书(如何在 .Net 中将 ASN.1 编码的 SubjectPublicKeyInfo 转换为 X509 Cert)
我正在构建一个 oauth 1.0a 服务,该服务将由 Jira 中的小工具使用,它是一个用 C# 编写的 .Net 3.5 应用程序。
Jira 使用 RSA-SHA1 签名方法向该服务发出请求,这意味着验证请求的签名我需要从他们的公共证书创建一个 X509Certificate 实例。
在 Jira 应用程序中,您可以通过转到消费者信息屏幕(其中还有 Jira 等的消费者密钥)来获取公共证书,它以这种格式显示公共密钥:
查看生成此密钥的 Jira 代码,我可以看到它(据说)是 PEM 编码的,没有 BEGIN/END 证书页眉/页脚。
RSAKeys 是一个开源类,可以在这里找到:
我希望将此公共证书(密钥)加载到 .Net 中的 X509Certificate 实例中,但到目前为止我的尝试都失败了。这是我的代码:
但是在最后一行代码中,我抛出了一个异常:
我很确定我错过了一些基本的东西,但我能想到它是什么。
更新
好的,经过进一步调查,这似乎是公钥的 SubjectPublicKeyInfo 序列化,所以它是 ASN.1,base 64 编码(162 字节未编码),这是 Java 使用 java.security.PublicKey.getEncoded() 的默认输出.
因此,鉴于所有这些 - 是否有任何简单的方法来创建包装此公钥的 X509Certificate2 实例 - 或者除了公钥之外还需要额外的元数据来创建 x509Certificate2 实例?