JSON 接口如何实现 RSA 非对称加密与签名

本文介绍了JSON接口中RSA非对称加密和数字签名的重要性及原理,详细阐述了签名和加密的过程,并提供了相关代码示例。通过加密确保数据安全,签名保证消息完整性和发送方身份的不可抵赖性。即使使用HTTPS,RSA加密和签名仍然是必要的,如在支付宝订单接口中,用于防止中间人攻击和验证请求来源。
摘要由CSDN通过智能技术生成

代码地址如下:
http://www.demodashi.com/demo/14000.html

###一、概述
1、 数字签名的作用:保证数据完整性,机密性和发送方角色的不可抵赖性,加密与签字结合时,两套公私钥是不同的。

2、加密是对信息进行编码和解码的技术,编码是把原来可读信息(又称明文)译成代码形式(又称密文),其逆过程就是解码(解密),加密技术的要点是加密算法,加密算法可以分为三类: .对称加密 ,非对称加密 ,不可逆加密。

3、对称加密算法

a、加密过程: 将明文分成N个组,然后对各个组进行加密,形成各自的密文,最后把所有的分组密文进行合并,形成最终的密文。

b、优点: 算法公开、计算量小、加密速度快、加密效率高

c、缺点: 交易双方都使用同样钥匙,安全性得不到保证,密钥管理困难,尤其是在分布式网络中

d、常用算法: DES、3DES(TripleDES)、AES、RC2、RC4、RC5和Blowfish

4、非对称加密算法

a、使用过程: 乙方生成两把密钥(公钥和私钥),甲方获取乙方的公钥,然后用它对信息加密。乙方得到加密后的信息,用私钥解密,乙方也可用私钥加密字符串,甲方获取乙方私钥加密数据,用公钥解密。

b、优点: 更安全,密钥越长,它就越难破解

c、缺点: 加密速度慢

d、常用算法: RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)

###二、签名详细
签名方法:

public static String sign(String content, String privateKey, String input_charset)
	{
    
        try 
        {
    
        	PKCS8EncodedKeySpec priPKCS8 	= new PKCS8EncodedKeySpec( Base64.decode(privateKey) ); 
        	KeyFactory keyf 				= KeyFactory.getInstance("RSA");
        	PrivateKey priKey 				= keyf.generatePrivate(priPKCS8);

            java.security.Signature signature = java.security.Signature
                .getInstance(SIGN_ALGORITHMS);

            signature.initSign(priKey);
            signature.update( content.getBytes(input_charset) );

            byte[
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值