Können Sie mir helfen, ein einfaches Tutorial zu finden, wie eine Zeichenfolge mit ECDSA-Algorithmus in Java signieren. Aber ohne die Verwendung von Bibliotheken von Drittanbietern wie Bouncycastle. Just JDK 7. Ich fand es schwierig, ein einfaches Beispiel zu suchen, ich bin neu in der Kryptographie.Tutorial von ECDSA-Algorithmus, um eine Zeichenfolge zu signieren
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 für ECDSA ändern?
Blick für jedes Beispiel, das DSA verwendet, sondern verwendet diese Algorithmen statt: [EC-Provider] (http://docs.oracle.com/javase/7/docs/technotes/guides/security/SunProviders.html #SunEC) –
zum Beispiel, wenn ich dieses Tutorial verwende, was soll ich hier ändern? http://www.java2s.com/Code/Java/Security/Testthesignature.htm oder mit dieser http://docs.oracle.com/javase/tutorial/security/apisign/step1.html sollte ich anstelle von dsa platzieren Ecdsa? – user1379574
Bitte akzeptieren Sie einige Antworten, indem Sie auf das V-Zeichen neben dem richtigen klicken. Oder sagen Sie uns (und in diesem Fall GregS), warum die Frage nicht zufriedenstellend beantwortet wurde. –