当前位置: 首页 > 面试题库 >

如何使用公钥在openssl中加密大文件

黄彬
2023-03-14
问题内容

如何使用公共密钥加密大文件,以使只有拥有私有密钥的人才能解密该文件?

我可以使RSA公共和私有密钥生效,但是在使用以下命令加密大型文件时:

openssl rsautl -encrypt -pubin -inkey public.pem -in myLargeFile.xml -out myLargeFile_encrypted.xml

以及如何执行解密…

我通过以下命令创建我的私钥和公钥

openssl genrsa -out private.pem 1024
openssl rsa -in private.pem -out public.pem -outform PEM -pubout

我收到此错误:

RSA operation error
3020:error:0406D06E:rsa routines:RSA_padding_add_PKCS1_type_2:data too large for key size:.\crypto\rsa\rsa_pk1.c:151:

我尝试制作大小从1024到1200位的键,没有运气,同样的错误


问题答案:

公钥加密不适用于对任意长文件进行加密。人们使用对称密码(例如AES)进行常规加密。每次生成,使用并使用RSA密码(公钥)加密新的随机对称密钥。密文与加密的对称密钥一起传输到接收者。接收者使用其私钥解密对称密钥,然后使用对称密钥解密消息。

私有密钥从不共享,只有公共密钥用于加密随机对称密码。



 类似资料:
  • 我想使用带有RSA算法的OpenSSL使用私钥加密文件: 现在,如果我执行解密操作: 此操作需要私钥 我知道我应该使用公钥进行加密,如果我使用私钥,我会得到一个签名。 然而,我想这样做是为了学习。

  • 我的理解是,公钥可以用于加密,私钥可以用于解密,公钥不能解密由同一公钥加密的文件。我有没有误解,或者我做错了什么? 1) 生成密钥 openssl genrsa-out./private.pem2048 2) 生成公钥 openssl rsa-in/私有的pem-发布 3)加密一个小文本文件 openssl加密/在里面txt-输出/出来附件e-aes256-k/平民的pem公司 4) 使用公钥解密

  • 我有这样的情况,我使用OpenSSL生成了一个公钥/私钥对,供gdcmanon使用,遵循他们网站上列出的说明。具体地说,我使用以下命令为gdcmanon生成密钥 然后,我就能够按照他们的指示,加密一个文件,使用 这在c.init(cipher.decrypt_mode,key)行失败; 我已经为Java6安装了JCE(我正在使用)。我不知道我做错了什么。谁能给我指出正确的方向吗。 谢谢

  • 以下命令生成一个包含公钥和私钥的文件: 资料来源:这里 使用OpenSSL,私钥也包含公钥信息,因此公钥不需要单独生成 如何从私钥中提取公钥。pem文件? 谢谢

  • 我知道这很难...但我使用OpenSSL以一种非常标准的方式加密文件。该文件使用RSA-2048公钥在AES-256中加密。我想在Java中使用私钥解密文件。我研究了很长时间,尝试了很多方法,但似乎都行不通。我只是找到相关的问题与工作的解决方案,但不是确切地为我的问题。 我使用以下命令生成public-/private-key-pair:

  • 我找到了几个可以使用的解决方案。Net RSA Provider使用公钥对消息进行加密,并使用私钥对其解密。 但我想要的是用私钥加密,用公钥解密。 我希望在我的应用程序中存储公钥,并使用私钥加密许可证,例如在我的开发人员计算机上,将其发送到应用程序,并让信息使用公钥解密。 我怎样才能做到这一点?