美文网首页
java签名算法

java签名算法

作者: simplerandom | 来源:发表于2020-06-19 15:50 被阅读0次
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
import java.security.*;
public class Test {
    public static void main(String[] args) throws Exception {
        // 生成RSA公钥/私钥:
        KeyPairGenerator kpGen = KeyPairGenerator.getInstance("RSA");
        kpGen.initialize(1024);
        KeyPair kp = kpGen.generateKeyPair();
        PrivateKey sk = kp.getPrivate();
        PublicKey pk = kp.getPublic();

        // 待签名的消息:
        byte[] message = "Hello, I am Bob!".getBytes(StandardCharsets.UTF_8);

        // 用私钥签名:
        Signature s = Signature.getInstance("SHA1withRSA");
        s.initSign(sk);
        s.update(message);
        byte[] signed = s.sign();
        System.out.println(String.format("signature: %x", new BigInteger(1, signed)));

        // 用公钥验证:
        Signature v = Signature.getInstance("SHA1withRSA");
        v.initVerify(pk);
        v.update(message);
        boolean valid = v.verify(signed);
        System.out.println("valid? " + valid);
    }
}

相关文章

网友评论

      本文标题:java签名算法

      本文链接:https://www.haomeiwen.com/subject/sczvxktx.html