0
自分でチェックしたときにコードfalse
が返される理由を理解できません。Signature Verifierが自分自身でチェックするとfalseを返す
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.security.Signature;
import java.security.SignatureException;
import java.security.NoSuchProviderException;
import java.security.*;
public class HelloWorld
{
public static void main(String[] args)
{
KeyPair keyPair;
String data = "test";
try {
KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("DSA");
keyPairGen.initialize(512);
keyPair = keyPairGen.genKeyPair();
Signature sign = Signature.getInstance("SHA1withDSA", "SUN");
sign.initSign(keyPair.getPrivate());
sign.update(data.getBytes());
byte[] encoded = sign.sign();
sign = Signature.getInstance("SHA1withDSA", "SUN");
sign.initVerify(keyPair.getPublic());
sign.update(encoded);
System.out.println("Checked: " + sign.verify(encoded)); // Testing with itself returns false????
} catch (NoSuchAlgorithmException ex) {
ex.printStackTrace();
} catch (SignatureException ex) {
ex.printStackTrace();
} catch (NoSuchProviderException ex) {
ex.printStackTrace();
} catch (InvalidKeyException ex) {
ex.printStackTrace();
}
}
}
プライベート/公開キーに問題がありますか? 私は本当に混乱しています。あなたが間違ったことを更新している
神様、私はとても馬鹿だと感じています。ありがとう。 – Franchesco