久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

從 ECPrivateKey 生成 ECPublicKey

Generate ECPublicKey from ECPrivateKey(從 ECPrivateKey 生成 ECPublicKey)
本文介紹了從 ECPrivateKey 生成 ECPublicKey的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我正在嘗試在給定私鑰和已知曲線的情況下生成公鑰.以下是我的代碼:

I'm trying to generate a public key given a private key and known curve. Below is my code:

// Generate Keys
ECGenParameterSpec ecGenSpec = new ECGenParameterSpec("secp256r1");
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("ECDSA", "BC");
keyPairGenerator.initialize(ecGenSpec, new SecureRandom());
java.security.KeyPair pair = keyPairGenerator.generateKeyPair();
ECPrivateKey privateKey = (ECPrivateKey) pair.getPrivate();
ECPublicKey publicKeyExpected = (ECPublicKey) pair.getPublic();

// Expected public key
System.out.print("Expected Public Key: " +
        BaseEncoding.base64Url().encode(publicKeyExpected.getEncoded()));

// Generate public key from private key
X9ECParameters ecp = SECNamedCurves.getByName("secp256r1");
ECDomainParameters domainParams = new ECDomainParameters(ecp.getCurve(),
        ecp.getG(), ecp.getN(), ecp.getH(),
        ecp.getSeed());
ECPoint Q = domainParams.getG().multiply(privateKey.getS()); // is this correct?
KeyFactory kf = KeyFactory.getInstance("ECDSA", "BC");
ECPublicKey publicKeyGenerated =
        (ECPublicKey) kf.generatePublic(new X509EncodedKeySpec(Q.getEncoded(false)));  // exception here

// Generated public key from private key
System.out.print("Generated Public Key: " +
        BaseEncoding.base64Url().encode(publicKeyGenerated.getEncoded()));

但是,當我調用時:kf.generatePublic(new X509EncodedKeySpec(Q.getEncoded(false)))我得到了異常:java.security.spec.InvalidKeySpecException:編碼的密鑰規范無法識別(不是我的拼寫錯誤)

However, when I call: kf.generatePublic(new X509EncodedKeySpec(Q.getEncoded(false))) I get the exception: java.security.spec.InvalidKeySpecException: encoded key spec not recognised (not my misspelling)

我似乎錯誤地計算了 Q,但我不確定我的錯誤在哪里.

I appears I'm incorrectly calculating Q, but I'm not sure where my error is.

感謝您的幫助!

推薦答案

萬一我未來的自己需要解決方案:

In case my future self needs the solution:

// Generate Keys
ECGenParameterSpec ecGenSpec = new ECGenParameterSpec("secp256r1");
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("ECDSA", "BC");
keyPairGenerator.initialize(ecGenSpec, new SecureRandom());
java.security.KeyPair pair = keyPairGenerator.generateKeyPair();
ECPrivateKey privateKey = (ECPrivateKey) pair.getPrivate();
ECPublicKey publicKeyExpected = (ECPublicKey) pair.getPublic();

// Expected public key
System.out.print("Expected Public Key: " +
        BaseEncoding.base64Url().encode(publicKeyExpected.getEncoded()));

// Generate public key from private key
KeyFactory keyFactory = KeyFactory.getInstance("ECDSA", "BC");
ECParameterSpec ecSpec = ECNamedCurveTable.getParameterSpec("secp256r1");

ECPoint Q = ecSpec.getG().multiply(privateKey.getD());
byte[] publicDerBytes = Q.getEncoded(false);

ECPoint point = ecSpec.getCurve().decodePoint(publicDerBytes);
ECPublicKeySpec pubSpec = new ECPublicKeySpec(point, ecSpec);
ECPublicKey publicKeyGenerated = (ECPublicKey) keyFactory.generatePublic(pubSpec);

// Generated public key from private key
System.out.print("Generated Public Key: " +
        BaseEncoding.base64Url().encode(publicKeyGenerated.getEncoded()));

這篇關于從 ECPrivateKey 生成 ECPublicKey的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Java Remove Duplicates from an Array?(Java從數組中刪除重復項?)
How to fix Invocation failed Unexpected Response from Server: Unauthorized in Android studio(如何修復調用失敗來自服務器的意外響應:在 Android 工作室中未經授權)
AES encryption, got extra trash characters in decrypted file(AES 加密,解密文件中有多余的垃圾字符)
AES Error: Given final block not properly padded(AES 錯誤:給定的最終塊未正確填充)
Detecting incorrect key using AES/GCM in JAVA(在 JAVA 中使用 AES/GCM 檢測不正確的密鑰)
AES-256-CBC in Java(Java 中的 AES-256-CBC)
主站蜘蛛池模板: 日韩久久精品视频 | 国产精品区一区二区三区 | 国产精品免费一区二区三区四区 | 久久国产成人 | 在线a视频网站 | 国产三级 | 91社区在线高清 | 国产视频一区二区 | 黄色av网站在线观看 | jizz在线看片 | 国产日韩精品一区二区 | 欧美精品在线播放 | 成人午夜在线视频 | 春色av| 日韩一级精品视频在线观看 | 久久91 | 欧美一区二区免费在线 | 国产一区二区在线视频 | 欧美一级欧美三级在线观看 | 狠狠爱网址 | 天天干狠狠干 | 毛片免费在线 | 成人精品视频免费 | 久久一级 | 国产亚洲欧美在线 | 午夜精品福利视频 | 欧美一区免费 | 中文在线一区 | 国产在线拍偷自揄拍视频 | 成人免费影院 | 亚洲激情一区二区三区 | a黄毛片 | 久久夜色精品国产 | 国产一级片精品 | 欧亚av在线| 亚洲热在线视频 | 日韩欧美精品 | 成人性视频免费网站 | 欧美久久一区二区三区 | 国产高清在线精品一区二区三区 | 亚洲精品久久久9婷婷中文字幕 |