关于非对称加密算法在不同系统间对接时的使用要点

本文介绍了不同加密算法库生成的密钥格式差异及转换方法,如何进行加密结果的网络传输,以及解决非对称加密算法长度限制的两种策略。

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

对方密钥的使用

不同加密算法的库生成的密钥的格式不同,拿到别人的密钥的时候,需要去掉格式,只保留密钥字符串,然后按照自己的格式拼接起来,再使用,举个例子。
对方的公钥是如下:

publicKey=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9QLc98Pt y8Y4gNOhV+yQmCK5uhTxjDVtueNXEgS/QnvcIzJRbN34IK/PAprMUo+BcMr /4LcOkN3ijfuY9siLUO56vfI5o1GrzBPMfHc6TdA8GJc5XBO2FaTcWqkn3g/3 Rakjt0wuHEKjKWYk/lkQNaUe64oizoN1mGTTsw26gOwIDAQAB

我方的公钥格式如下:

—–BEGIN PUBLIC KEY—–
MIGfMA0GCSqGSIbnvcIzAQUAA4GNADCBiQKBgQC9QLc98Pty8Y4gNOhV+yQmCK5u
hTxjDVtueNXEgS/QnvcIzJRbN34IK/PAprMUo+BcMr/4LcOkN3ijfuY9siLUO56v
fI5o1GrzBPMfHc6TdA8GJc5XBO2FaTcWqkn3g/3RanvcIzHEKjKWYk/lkQNaUe6
4oizoN1mGTTsw26gOwIDAQAB
—–END PUBLIC KEY—–

当需要对方的公钥的时需要转化成我方格式:

—–BEGIN PUBLIC KEY—–
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCnvcIzgQC9QLc98Pt y8Y4gNOhV+yQmCK5uhTxjDVtueNXEgS/QnvcIzJRbN34IK/PAprMUo+BcMr /4LcOknvcIzuY9siLUO56vfI5o1GrzBPMfHc6TdnvcIz5XBO2FaTcWqkn3g/3 Rakjt0wuHEKjKWYk/lkQNaUe64oizoN1mGTnvcIzgOwIDAQAB
—–END PUBLIC KEY—–

每行的字符数数要跟我方公钥保持一致

加密结果的网络传输

加密后的结果可能非法字符,在网络传输中可能造成数据丢失,这是可以使用可逆的编码方式处理加密后的字符串,例如base64编码。需要注意的是,解密的时候不要忘了通知对方使用同样的编码方式解码,再解密。

长度限制

非对称加密算法对于加密数据的长度一般是有限制的,这时候有两种思路:

  • 签名
    使用对称加密算法加密数据,使用非对称加密算法加密对称加密算法的密钥

  • 分段加密
    将数据分成若干条短数据,每条数据不超过限制。然后对短数据做非对称加密,最后将得到的短密文连接起来作为加密结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值