本文采用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