openssl aes加密结果是乱码_RSA加密加签入门

本文介绍了RSA公钥加密算法的发展历程及工作原理。详细解释了RSA算法如何利用大素数的乘积来实现加密与解密过程,并对比了对称加密与非对称加密的区别。此外还提供了生成RSA密钥的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

f90696224d61470c4ad588876d113e82.png

RSA加密解密

加密解密是公钥加密私钥解密,持有公钥(多人持有)可以对数据加密,但是只有持有私钥(一人持有)才可以解密并查看数据;

RSA加签验签

加签验签是私钥加签公钥验签,持有私钥(一人持有)可以加签,持有公钥(多人持有)可以验签。

流程

b7d984e97e83a3314e4321e6cc90310e.png

作用

加密:数据传输的安全性

加签:数据的防篡改、防否认机制

e08879e961c0b43b4dd735c5846904fc.png

对称加密算法

  (1)甲方选择某一种加密规则,对信息进行加密;

  (2)乙方使用同一种规则,对信息进行解密

加密模式有一个最大弱点:甲方必须把加密规则告诉乙方,否则无法解密。

例子说明

email登录密码,比如微信、支付宝登录密码等等,这些都是对称密码的应用。DES、AES都属于对称加密。只要是同一把钥匙在开一个锁,都是对称密码。

非对称加密算法

  (1)乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。

  (2)甲方获取乙方的公钥,然后用它对信息加密。

  (3)乙方得到加密后的信息,用私钥解密。

例子说明

ce93faa9b838f0347ba7c012184fdfe3.png

c3a8fac0af6572e8383e9dd116627910.png

加签

  (1)A生成一对密钥(公钥和私钥),私钥不公开,A自己保留。公钥为公开的,任何人可以获取。

  (2)A用自己的私钥对消息加签,形成签名,并将加签的消息和消息本身一起传递给B。

  (3)B收到消息后,在获取A的公钥进行验签,如果验签出来的内容与消息本身一致,证明消息是A回复的

生成公钥私钥方法

  1. 支付宝提供的一键生成工具

  2. OpenSSL工具命令生成

1.使用支付宝的工具

工具名:支付宝开发平台开发助手。下载地址:

https://ideservice.alipay.com/ide/getPluginUrl.htm?clientType=assistant&platform=win&channelType=WEB

下载后安装包长这样:

5a69e2ba4bd0254e2055b49016a3092e.png

安装后,直接就能生成了

9fdc94009dc1fdfac8996df07e91f452.png

2.OpenSSL工具

下载openssl  

https://slproweb.com/products/Win32OpenSSL.html

82a2c24eb80e33d638f4fe84f8143f5f.png

配置环境变量

8f626975ed61235142c830b70e20cf8f.png

验证

2d4314193cae63a674e2674cd967f402.png

生成私钥

-- 生成 RSA 私钥(传统格式的)

openssl genrsa -out rsa_private_key.pem 1024

-- 将传统格式的私钥转换成 PKCS#8 格式的(JAVA需要使用的私钥需要经过PKCS#8编码,PHP程序不需要,可以直接略过)

openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt

51cbf910b92b75cd414edadf70749939.png

生成公钥

-- 生成 RSA 公钥(php和java都用转换前私钥生成公钥)

openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

ddfa465cbd716a0b2a4a03de2af6493d.png

PS:我只是一名知识的搬运工,本文全部参考资料来自于百度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值