`
kevin.wang
  • 浏览: 251170 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

RSA加密与签名

 
阅读更多
RSA是一个非对称加密算法。
简单说来,非对称加密算法就是说加密解密一个文件需要有两个密钥,
一个用来加密,为公钥,一个用来解密,为私钥。
证书可以用来授权公钥的使用。

如果使用私钥对数据进行加密的话,加密就没有意义,因为每个人都可以拥有公钥,所以每个人都可以用公钥进行解密。所以,通常使用私钥对摘要进行加密,然后把加密后的摘要追加到明文的后面,再使用对称密钥对明文和摘要进行整体加密。假如a为私钥拥有者,那么接收者b拿到密文后,可以用对称密钥解密,使用公钥对摘要进行解密,通过对比摘要,可以证明密文是否被篡改,也可以证明密文是否来自私钥的拥有者a,这也就是验签。如果b要向a发送消息,可以使用公钥对消息进行加密,因为只有a拥有私钥,所以只有a可以解密。整体来说,通常是,公钥加密、私钥解密。


加密--公钥
解密--私钥
签名--私钥
验证--公钥


---生成私钥和公钥---
$ openssl 进入OpenSSL程序
OpenSSL> genrsa -out rsa_private_key.pem 1024 

#生成私钥 这里-out指定生成文件的。
需要注意的是这个文件包含了公钥和密钥两部分,也就是说这个文件即可用来加密也可以用来解密。
后面的1024是生成密钥的长度。
OpenSSL> rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
#从私钥文件中抽取生成公钥


-----加密-----
创建hello文件
OpenSSL> rsautl -encrypt -in hello -inkey rsa_public_key.pem -pubin -out hello.en
-in指定要加密的文件,-inkey指定密钥,-pubin表明是用纯公钥文件加密,-out为加密后的文件。

-----解密-----
OpenSSL> rsautl -decrypt -in hello.en -inkey rsa_private_key.pem -out hello.de

-in指定被加密的文件,-inkey指定私钥文件,-out为解密后的文件。


阿里

---针对JAVA-----
Java开发者需要将私钥转换成PKCS8格式
OpenSSL> pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt


---针对Python-----
安装python-RSA模块
"rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem"生成的public_key不适用与python
需要重新生成public_key,
方法:通过pyrsa-priv2pub命令,从rsa_private_key.pem中抽取public_key
pyrsa-priv2pub -i rsa_private_key.pem -o py_public_key.pem

参考
分享到:
评论

相关推荐

    RSA加密与签名验证

    运用Crypto++库在控制台下,加密并验证信息,鉴于相关lib过大(达40M左右),在些就不上传了,请诸位自行去官网下载。此次代码也借鉴了Jeffrey Walton的代码,仅供初学者参考。

    C#RSA加密解密签名和验证签名的小例子

    C#RSA加密解密签名和验证签名的小例子,代码都加了注释,可以很容易看懂.如果应用到消息收发,发送方用公钥加密,接收方用私钥解密.如果是应用到软件注册方面,则需要客户端保留公钥,程序开发者保留私钥.使用签名和验证...

    Delphi RSA 加密解密签名验签控件 RSA_Component(1.0.0.0).rar

    RSA加密演算法是一种非对称加密演算法。在公开密钥加密和电子商业中RSA被广泛使用。 典型的应用 1. 苹果App签名, iOS App 签名的原理; 2. 支付宝签名验证 ; 2. HTTPS 加密连接; 3. 程序直接用RSA+AES加密通信 ...

    C# 实现与JAVA互通 加签/验签,RSA加密/解密

    * RSA加密解密:私钥解密,公钥加密。 * RSA数字签名-俗称加签验签:私钥加签,公钥验签。  * RSA加密解密:私钥解密,公钥加密。 * RSA数字签名-俗称加签验签:私钥加签,公钥验签。  * RSA加密解密:私钥...

    C#与java平台RSA加密解密签名验签互通案例

    本案例聚焦于"C#与Java平台RSA加密解密签名验签互通"的问题,这涉及到两个主要的技术点:RSA加密算法和跨平台兼容性。下面将详细阐述这两个知识点。 首先,RSA是一种非对称加密算法,由Ron Rivest、Adi Shamir和...

    RSA加密、解密、签名、验签小工具

    可执行jar文件,需要jdk环境,谢谢!RSA加密、解密、签名、验证签名工具。

    rsa.zip_QT RSA加密算法_Qt rsa加密_qt rsa加密步骤_rsa_rsa算法 qt

    RSA加密算法是公钥密码学中的一个重要组成部分,它在信息安全领域有着广泛的应用,例如数字签名、数据加密等。Qt是一个跨平台的C++图形用户界面应用程序开发框架,它提供了丰富的库支持来创建桌面和移动应用。在本...

    Java与.NET RSA加密解密(签名,验签)实例代码

    本实例代码着重于Java与.NET平台之间的RSA加密解密及签名验签操作,这对于跨平台的数据安全通信具有实际意义,例如与支付宝POS对接时。 1. **RSA算法基础**: RSA是一种基于大数因子分解困难性的公钥密码体制。它...

    Android之RSA加密解密签名验签(亲测可用)

    4. **签名与验签** - **签名**:使用私钥对数据进行签名,生成一个数字签名,证明数据未被篡改。 ```java Signature signature = Signature.getInstance("SHA256withRSA"); signature.initSign(privateKey); ...

    RSA加密签名验签工具

    RSA加密签名验签工具是一款专为IT专业人士设计的实用软件,尤其适用于那些需要处理安全通信、数据保护和数字签名的用户。RSA,全称为Rivest-Shamir-Adleman,是一种非对称加密算法,是公钥密码学领域的基石之一。这...

    Delphi RSA加密解密签名工具

    Delphi RSA加密解密签名工具 本仓库提供了一个Delphi编写的RSA加密、解密和签名工具,支持生成密钥对,并且能够与C、Java、PHP等语言进行互通加解密操作。 功能特点 RSA加密与解密:支持标准的RSA加密和解密操作,...

    Delphi标准RSA加密,解密,签名.与C,Java,php等通用

    RSA是一种非对称加密算法,由Ron ...通过以上介绍,我们可以看出Delphi中的RSA加密、解密和签名实现并不复杂,但涉及到的关键技术与理论基础深厚。开发者在实际应用中应确保遵循最佳实践,以保证系统的安全性和可靠性。

    支付宝RSA加密签名验签工具

    **支付宝RSA加密签名验签工具详解** 在电子商务和移动支付领域,安全性是至关重要的。支付宝作为全球领先的支付平台,为了确保交易的安全性,采用了RSA非对称加密算法进行数据加密和签名验证。RSA是一种广泛应用于...

    Delphi 开发的 RSA 加密解密签名验签控件演示程序 RSA_Component_Demo(1.0.0.0).rar

    RSA加密演算法是一种非对称加密演算法。在公开密钥加密和电子商业中RSA被广泛使用。这是演示程序,不包含控件 型的应用 1. 苹果App签名, iOS App 签名的原理; 2. 支付宝签名验证 ; 2. HTTPS 加密连接; 3. 程序...

    RSA加密解密与签名验证

    RSA加密解密与签名验证是信息安全领域中的重要技术,它基于数论原理,尤其是大整数因子分解的困难性。RSA是由Ron Rivest、Adi Shamir和Leonard Adleman三位科学家在1977年提出的,因此得名RSA。这种公钥密码体制在...

    RSA加密算法在VB中的实现.rar_RSA VB_VB RSA_rsa加密算法_vb rsa_vb 加密

    RSA加密算法是公钥密码学领域的一个里程碑,它由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因此得名RSA。这种算法基于大整数因子分解的困难性,使得它在信息安全领域被广泛用于数据加密和数字签名。在...

    RSA加密算法实验报告.pdf

    本实验报告主要介绍了RSA加密算法的实现和原理,包括密钥对的产生、加密和解密过程、数字签名等。下面是该实验报告的详细知识点总结: 一、RSA加密算法的原理 RSA加密算法是基于大数分解问题的安全性,公钥和私钥...

    RSA加密解密签名加签验签RsaUtils工具类

    RSA加密解密签名加签验签RsaUtils工具类 RSA算法基于大数因子分解难题,提供了公钥加密和私钥解密的能力。公钥用于加密,私钥则负责解密。这种特性使得RSA成为保证数据传输安全的理想选择。 公钥加密私钥解密与...

    RSA加密解密工具,用于文件的加密和解密* RSA加密解密:私钥解密,公钥加密

    在本压缩包中,提供了RSA加密解密的工具——PRO_TDES_RSA.exe,这是一个执行程序,能够帮助用户对文件进行加密和解密操作。结合"RSATool工具简易操作指南 .doc",用户可以详细了解如何使用这个工具来保护他们的敏感...

    RSA加密解密签名验签代码(sun、BC)

    RSA加密算法是一种非对称加密技术,广泛应用于网络安全领域,如数据传输保护、数字签名等。在Java中,我们可以使用内置的太阳微系统(Sun)JCE库或Bouncy Castle库来实现RSA加密和解密操作。这篇博客文章可能详细...

Global site tag (gtag.js) - Google Analytics