美文网首页
PrivateKey

PrivateKey

作者: 风生水起_2018 | 来源:发表于2018-05-23 16:48 被阅读0次

    私钥:用来解锁对应(钱包)地址的一串字符

    /**
         * 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();
        }
    

    相关文章

      网友评论

          本文标题:PrivateKey

          本文链接:https://www.haomeiwen.com/subject/qyarjftx.html