Czy możesz mi pomóc znaleźć prosty samouczek, jak podpisać ciąg znaków za pomocą algorytmu ECDSA w java. Ale bez użycia bibliotek innych firm, takich jak bouncycastle. Po prostu JDK 7. Trudno było znaleźć prosty przykład, jestem nowy w kryptografii.Samouczek algorytmu ECDSA do podpisania ciągu znaków
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());
}
}
}
Jak zmodyfikować go do ECDSA?
Look dla każdego przykładu, który używa DSA, ale zamiast wykorzystać te algorytmy: [dostawca WE] (http://docs.oracle.com/javase/7/docs/technotes/guides/security/SunProviders.html #SunEC) –
na przykład, jeśli używam tego samouczka, co mam tutaj zmienić? http://www.java2s.com/Code/Java/Security/Testthesignature.htm lub używając tego http://docs.oracle.com/javase/tutorial/security/apisign/step1.html powinienem umieścić zamiast dsa ecdsa? – user1379574
Proszę zaakceptować niektóre odpowiedzi, klikając znak V obok właściwego. Lub powiedz nam (w tym przypadku GregS), dlaczego odpowiedź na pytanie nie jest satysfakcjonująca. –