私钥:用来解锁对应(钱包)地址的一串字符
/**
* Generates an entirely new keypair with the given {@link SecureRandom} object. Point compression is used so the
* resulting public key will be 33 bytes (32 for the co-ordinate and 1 byte to represent the y bit).
* 通过提供的随机数生成器,生成完整的密钥对。
* 生成的公钥包含33个字节,其中x坐标占用32额字节,y坐标占用1个字节(因为y值可以通过x只计算出来,因此这个字节用于标识正负)
*/
public ECKey(SecureRandom secureRandom) {
//实例化密钥对生成器
ECKeyPairGenerator generator = new ECKeyPairGenerator();
//设置密钥对生成器的相关参数,包括曲线类型和随机数生成器
ECKeyGenerationParameters keygenParams = new ECKeyGenerationParameters(CURVE, secureRandom);
//初始化密钥生成器相关参数
generator.init(keygenParams);
//生成密钥对
AsymmetricCipherKeyPair keypair = generator.generateKeyPair();
//获取公钥和私钥参数对象
ECPrivateKeyParameters privParams = (ECPrivateKeyParameters) keypair.getPrivate();
ECPublicKeyParameters pubParams = (ECPublicKeyParameters) keypair.getPublic();
//获取私钥和公钥值
priv = privParams.getD();
pub = new LazyECPoint(CURVE.getCurve(), pubParams.getQ().getEncoded(true));
//设置密钥对生成时间
creationTimeSeconds = Utils.currentTimeSeconds();
}
网友评论