Java'da ECDSA algoritması kullanarak bir dizeyi imzalamanın nasıl basit bir öğretici bulmamda yardımcı olabilir misiniz? Ama bouncycastle gibi üçüncü parti kütüphaneler kullanmadan. Sadece JDK 7. Basit bir örnek aramak zor buldum, ben şifreleme için yeniyim.Bir dize imzalamak için ECDSA algoritmasının öğreticisi
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());
}
}
}
Nasıl ECDSA için değiştirmek?
Görünüş: [EC sağlayıcı] (http://docs.oracle.com/javase/7/docs/technotes/guides/security/SunProviders.html #SunEC) –
Örneğin, bu eğiticiyi kullanırsam, burada neyi değiştirmeliyim? http://www.java2s.com/Code/Java/Security/Testthesignature.htm veya bunu kullanarak http://docs.oracle.com/javase/tutorial/security/apisign/step1.html yerine dsa yerleştirmeliyim ECDSA? – user1379574
Lütfen doğru cevapların yanındaki V işaretini tıklayarak bazı cevapları kabul edin. Ya da bize (ve bu durumda GregS) sorunun neden tatmin edici bir şekilde cevaplanmadığını söyleyin. –