javaDSA实现加密和解密(签名和验证)

创建主函数测试

  public static void main(String[] args) throws Exception {
        
        String data = "跳梁小豆tlxd666";
        
        //创建秘钥生成器
        KeyPairGenerator kpg = KeyPairGenerator.getInstance("DSA");
        kpg.initialize(512);
        KeyPair keypair = kpg.generateKeyPair();//生成秘钥对
        DSAPublicKey publickey = (DSAPublicKey)keypair.getPublic();
        DSAPrivateKey privatekey = (DSAPrivateKey)keypair.getPrivate();
        
        //签名和验证
        //签名
        Signature sign = Signature.getInstance("SHA1withDSA");
        sign.initSign(privatekey);//初始化私钥,签名只能是私钥
        sign.update(data.getBytes());//更新签名数据
        byte[] b = sign.sign();//签名,返回签名后的字节数组
        
        
        //验证
        sign.initVerify(publickey);//初始化公钥,验证只能是公钥
        sign.update(data.getBytes());//更新验证的数据
        boolean result = sign.verify(b);//签名和验证一致返回true  不一致返回false
        System.out.println(result);
        
        
    }

 

转载于:https://www.cnblogs.com/luoxiaodou/p/9709109.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值