sm2加密 java实现_SM2的非对称加解密java工具类

这是一个使用Java实现的SM2非对称加解密工具类,基于BouncyCastle库,实现了SM2加密算法的公钥加密和私钥解密功能。通过生成SM2密钥对,进行加密和解密操作,确保数据的安全传输。
摘要由CSDN通过智能技术生成

maven依赖

org.bouncycastle

bcprov-jdk15on

1.54

java实现如下

import java.math.BigInteger;

import java.security.SecureRandom;

import java.util.Arrays;

import org.bouncycastle.crypto.DerivationFunction;

import org.bouncycastle.crypto.digests.SHA256Digest;

import org.bouncycastle.crypto.digests.ShortenedDigest;

import org.bouncycastle.crypto.generators.KDF1BytesGenerator;

import org.bouncycastle.crypto.params.ISO18033KDFParameters;

import org.bouncycastle.math.ec.ECCurve;

import org.bouncycastle.math.ec.ECPoint;

/**

* 说明:SM2的非对称加解密工具类,椭圆曲线方程为:y^2=x^3+ax+b 使用Fp-256

*/

public class SM2Util {

/** 素数p */

private static final BigInteger p = new BigInteger("FFFFFFFE" + "FFFFFFFF"

+ "FFFFFFFF" + "FFFFFFFF" + "FFFFFFFF" + "00000000" + "FFFFFFFF"

+ "FFFFFFFF", 16);

/** 系数a */

private static final BigInteger a = new BigInteger("FFFFFFFE" + "FFFFFFFF"

+ "FFFFFFFF" + "FFFFFFFF" + "FFFFFFFF" + "00000000" + "FFFFFFFF"

+ "FFFFFFFC", 16);

/** 系数b */

private static final BigInteger b = new BigInteger("28E9FA9E" + "9D9F5E34"

+ "4D5A9E4B" + "CF6509A7" + "F39789F5" + "15AB8F92" + "DDBCBD41"

+ "4D940E93", 16);

/** 坐标x */

private static final BigInteger xg = new BigInteger("32C4AE2C" + "1F198119"

+ "5F990446" + "6A39C994" + "8FE30BBF" + "F2660BE1" + "715A4589"

+ "334C74C7", 16);

/** 坐标y */

private static final BigInteger yg = new BigInteger("BC3736A2" + "F4F6779C"

+ "59BDCEE3" + "6B692153" + "D0A9877C" + "C62A4740" + "02DF32E5"

+ "2139F0A0", 16);

/** 基点G, G=(xg,yg),其介记为n */

private static final BigInteger n = new BigInteger("FFFFFFFE" + "FFFFFFFF"

+ "FFFFFFFF" + "FFFFFFFF" + "7203DF6B" + "21C605

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值