Код: Выделить всё
String sData = "This is some text";
byte[] data = sData.getBytes();
KeyPairGenerator kpg = KeyPairGenerator.getInstance("DSA");
kpg.initialize(1024);
KeyPair keyPair = kpg.generateKeyPair();
PrivateKey privateKey = keyPair.getPrivate();
PublicKey publicKey = keyPair.getPublic();
Signature dsa = Signature.getInstance("DSA");
dsa.initSign(privateKey);
dsa.update(data);
byte[] sig = dsa.sign();
dsa.initVerify(publicKey);
dsa.update(data);
boolean verifies = dsa.verify(sig);
System.out.println("signature verifies: " + verifies);
Код: Выделить всё
KeyPairGenerator kpg = KeyPairGenerator.getInstance("DSA");
kpg.initialize(1024);
KeyPair keyPair = kpg.generateKeyPair();
PrivateKey privateKey = keyPair.getPrivate();
PublicKey publicKey = keyPair.getPublic();
Signature dsa = Signature.getInstance("DSA");
dsa.initSign(privateKey);
FileInputStream fRead = new FileInputStream(new File("D:\\test\\plainText.txt"));
byte[] buffer = new byte[8192];
int lenght;
while((lenght = fRead.read(buffer)) != -1) {
dsa.update(buffer, 0, lenght);
}
byte[] sig = dsa.sign();
fRead.close();
File file1 = new File("D:\\test(OnlySignature).txt");
FileOutputStream fOut = new FileOutputStream(file1);
fOut.write(sig);
fOut.close();
FileInputStream fIn = new FileInputStream(file1);
byte[] data = new byte[fIn.available()];
fIn.read(data);
fIn.close();
dsa.initVerify(publicKey);
dsa.update(data);
boolean verifies = dsa.verify(sig);
System.out.println("signature verifies: " + verifies);
З.Ы.
Код: Выделить всё
FileInputStream fIn = new FileInputStream(file1);
int n;
while((n = fIn.read()) != -1) {
dsa.update((byte)n);
}
fIn.close();
Код: Выделить всё