亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

自定義 Java 公鑰生成(比特幣)

自定義 Java 公鑰生成(比特幣)

喵喔喔 2023-03-31 10:10:55
私鑰是隨機生成的,不與任何錢包關聯。我想為比特幣準備公鑰生成的自定義(簡單)實現。然而,經過幾次嘗試,我的結果是不正確的。我將它們與在線生成器進行了比較。我發現我使用了除法而不是 modinv。不幸的是,在將 division 更改為 modinv 之后,我得到了“java.lang.ArithmeticException: BigInteger not invertible.”。我厭倦了關注https://www.mobilefish.com/services/cryptocurrency/cryptocurrency.html#refProdedure和https://en.wikipedia.org/wiki/Elliptic_curve_point_multiplication你能幫我認出我在哪里做錯了嗎?public class ECDSAUtils {    private static final CurvePoint G = new CurvePoint(new BigInteger("79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798", 16), new BigInteger("483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8", 16));    private static CurvePoint zero;    private static BigInteger base;    private static final BigInteger three = new BigInteger("3", 10);    public static void main(String[] args){        ECDSAUtils e = new ECDSAUtils();        BigInteger privateKey = new BigInteger("fdc668381ab251673ef8552851a2c7cf346a6e09ea86be0f55a94d2a12253557", 16);        CurvePoint r = e.mult(G, privateKey);        System.out.println(r.x.toString(16).toUpperCase() + " " + r.y.toString(16).toUpperCase());    }    public ECDSAUtils(){        zero = new CurvePoint(new BigInteger("0", 16), new BigInteger("0", 16));        base = new BigInteger("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F", 16);    }    public static CurvePoint add(CurvePoint p, CurvePoint q){        CurvePoint result = null;        if (p.equals(zero)){            result = q;        } else if (q.equals(zero)){            result = p;        } else {            BigInteger lambda = q.y.subtract(p.y).modInverse(q.x.subtract(p.x)).mod(base);            BigInteger x = lambda.multiply(lambda).subtract(p.x).subtract(q.x).mod(base);            BigInteger y = lambda.multiply(p.x.subtract(x)).subtract(p.y).mod(base);            result = new CurvePoint(x, y);        }        return result;  
查看完整描述

目前暫無任何回答

  • 0 回答
  • 0 關注
  • 106 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號