Tutorial von ECDSA-Algorithmus auf Zeichen einer Zeichenfolge
Können Sie mir helfen finden Sie eine einfache Anleitung, wie Zeichen einer Zeichenfolge mit ECDSA-Algorithmus in java. Aber ohne third-party-Bibliotheken wie bouncycastle. Nur JDK 7. Ich fand es schwierig, zu suchen, ein einfaches Beispiel, ich bin neu in die Kryptographie.
import java.io.*;
import java.security.*;
public class GenSig {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
/*
* Generate a DSA signature
*/
try {
/*
* Generate a key pair
*/
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DSA", "SUN");
SecureRandom random = SecureRandom.getInstance("SHA1PRNG", "SUN");
keyGen.initialize(1024, random);
KeyPair pair = keyGen.generateKeyPair();
PrivateKey priv = pair.getPrivate();
PublicKey pub = pair.getPublic();
/*
* Create a Signature object and initialize it with the private key
*/
Signature dsa = Signature.getInstance("SHA1withDSA", "SUN");
dsa.initSign(priv);
String str = "This is string to sign";
byte[] strByte = str.getBytes();
dsa.update(strByte);
/*
* Now that all the data to be signed has been read in, generate a
* signature for it
*/
byte[] realSig = dsa.sign();
System.out.println("Signature: " + new String(realSig));
} catch (Exception e) {
System.err.println("Caught exception " + e.toString());
}
}
}
Wie es zu ändern für ECDSA?
Suchen Sie für jedes Beispiel, DSA, aber verwenden Sie diese algorithmen statt: EG-provider
zum Beispiel, wenn ich mit diesem tutorial auch, was sollte ich hier ändern? java2s.com/Code/Java/Security/Testthesignature.htm oder mit diesem eine docs.oracle.com/javase/tutorial/security/apisign/step1.html sollte ich statt dessen von dsa ecdsa?
Bitte akzeptieren Sie einige Antworten, indem Sie auf die V-Markierung neben dem richtigen. Oder uns sagen (und in diesem Fall GregS), warum die Frage noch nicht ausreichend geklärt.
zum Beispiel, wenn ich mit diesem tutorial auch, was sollte ich hier ändern? java2s.com/Code/Java/Security/Testthesignature.htm oder mit diesem eine docs.oracle.com/javase/tutorial/security/apisign/step1.html sollte ich statt dessen von dsa ecdsa?
Bitte akzeptieren Sie einige Antworten, indem Sie auf die V-Markierung neben dem richtigen. Oder uns sagen (und in diesem Fall GregS), warum die Frage noch nicht ausreichend geklärt.
InformationsquelleAutor user1379574 | 2012-07-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier kleines Beispiel basierend auf deinem Beispiel.
Ich hatte Angst, jemand würde Fragen, dass. Ich weiß nicht, P-256 wäre meine Vermutung aber.
Es läuft in den debugger und schummeln ein wenig verrät: secp256r1 [NIST P-256, X9.62 prime256v1]
Oh, ich werfe es den ECPrivateKey und bekam die Kurve 🙂 ich mag explizit nennen die Kurve aber.
Es funktioniert. Ich wollte eigentlich nicht die Signaturen überprüfen zu können, aber das Beispiel läuft, wenn man anstelle
Signature dsa = Signature.getInstance("SHA256withECDSA");
oder einen der SHA2-algorithmen anstelle von SHA256.InformationsquelleAutor James K Polk
========================
}
dies ist ein kleines code-snippet aus meinem Projekt.
es funktioniert für mich. Ich habe einen junit-test, als auch;
hoffentlich hilft.
nur falls jemand sich fragt, wie laden wir den privaten Schlüssel und pubkey:
(Hinweis: privKey ist das byte-array mit den BigInteger in java, und der pubKey ist die Kurve, die Stelle im Binär-format)
InformationsquelleAutor linehrr