Generate Public Key From Private Key Ecdsa Encryption Java
Posted : admin On 17.12.2020Oct 04, 2019 ECDSA with secp256k1 in Java: generate ECC keys, sign, verify - ECDSA-secp256k1-example.java. Sep 11, 2012 This site uses cookies for analytics, personalized content and ads. Chrome 4.0 mac download. By continuing to browse this site, you agree to this use.
ECDSA with secp256k1 in Java: generate ECC keys, sign, verify
ECDSA-secp256k1-example.java
importorg.bouncycastle.util.encoders.Hex; |
importorg.web3j.crypto.*; |
importjava.math.BigInteger; |
publicclassECCExample { |
publicstaticStringcompressPubKey(BigIntegerpubKey) { |
String pubKeyYPrefix = pubKey.testBit(0) ?'03':'02'; |
String pubKeyHex = pubKey.toString(16); |
String pubKeyX = pubKeyHex.substring(0, 64); |
return pubKeyYPrefix + pubKeyX; |
} |
publicstaticvoidmain(String[] args) throwsException { |
//BigInteger privKey = Keys.createEcKeyPair().getPrivateKey(); |
BigInteger privKey =newBigInteger('97ddae0f3a25b92268175400149d65d6887b9cefaf28ea2c078e05cdc15a3c0a', 16); |
BigInteger pubKey =Sign.publicKeyFromPrivate(privKey); |
ECKeyPair keyPair =newECKeyPair(privKey, pubKey); |
System.out.println('Private key: '+ privKey.toString(16)); |
System.out.println('Public key: '+ pubKey.toString(16)); |
System.out.println('Public key (compressed): '+ compressPubKey(pubKey)); |
String msg ='Message for signing'; |
byte[] msgHash =Hash.sha3(msg.getBytes()); |
Sign.SignatureData signature =Sign.signMessage(msgHash, keyPair, false); |
System.out.println('Msg: '+ msg); |
System.out.println('Msg hash: '+Hex.toHexString(msgHash)); |
System.out.printf('Signature: [v = %d, r = %s, s = %s]n', |
signature.getV() -27, |
Hex.toHexString(signature.getR()), |
Hex.toHexString(signature.getS())); |
System.out.println(); |
BigInteger pubKeyRecovered =Sign.signedMessageToKey(msg.getBytes(), signature); |
System.out.println('Recovered public key: '+ pubKeyRecovered.toString(16)); |
boolean validSig = pubKey.equals(pubKeyRecovered); |
System.out.println('Signature valid? '+ validSig); |
} |
} |
pom.xml
<?xml version='1.0' encoding='UTF-8'?> |
<projectxmlns='http://maven.apache.org/POM/4.0.0' |
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' |
xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd'> |
<modelVersion>4.0.0</modelVersion> |
<groupId>bc-examples</groupId> |
<artifactId>bc-examples</artifactId> |
<version>1.0-SNAPSHOT</version> |
<dependencies> |
<dependency> |
<groupId>org.web3j</groupId> |
<artifactId>crypto</artifactId> |
<version>3.3.1</version> |
</dependency> |
</dependencies> |
</project> |
commented Apr 5, 2018
Generate Private And Public Key
/nfs-underground-2-key-generator-download.html. The expected output is as follows: |
commented Sep 16, 2018
/ssh-key-generate-public-from-private.html. java.security package contains ECDSA classes for generating the key pair, signing and verifying signatures. |
Generate Rsa Public Key
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment