非对称加密的签名和验签、加密和解密的Java语言实现

本文介绍了使用Java.security包进行非对称加密的方法,包括私钥签名和公钥验签的过程,以及私钥加密、公钥解密的实践。这些技术广泛应用于银行报文、支付宝、微信等金融数据交换场景。
摘要由CSDN通过智能技术生成

本文采用java.security包的签名和验签。采用A的私钥签名发送至B,B采用A的公钥进行验签。

加解密可以私钥加密、公钥解密(或者公钥加密、私钥解密)。

一般用于银行报文传输、支付宝、微信、银行以及各大银行的数据交换。

package com.example.demo;

import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.SecureRandom;
import java.security.Signature;

import javax.crypto.Cipher;

import org.springframework.util.Base64Utils;

public class TestUint {
	
	public static final String SIGNATURE_ALGORITHM = "MD5withRSA";
	public static final byte[] data="xyz_test".getBytes();
	public static void main(String[] args) throws Exception {
		KeyPairGenerator keygen = KeyPairGenerator.getInstance("RSA");
		SecureRandom random = new SecureRandom();
		// 初始加密,512位已被破解,用1024位,用2048位更安全
		keygen.initialize(1024, random);
		// 取得密钥对  
		KeyPair kp = keygen.generateKeyPair();

//		System.out.pr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值