dsa的java实现_java中的DSA数据转换

我想检查公钥是否与私钥对应 - 是否正确。

也没有提供者称为BC。

我有这个实现,但我不知道什么Utils.createFixedRandom()假设要做。

我没有这样的图书馆和方法。

除此之外,如果你有一个没有java.security的原始实现,它会很棒。

import java.security.KeyPair;

import java.security.KeyPairGenerator;

import java.security.SecureRandom;

import java.security.Signature;

public class BasicDSAExample {

public static void main(String[] args) throws Exception {

KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DSA", "BC");

keyGen.initialize(512, new SecureRandom());

KeyPair keyPair = keyGen.generateKeyPair();

Signature signature = Signature.getInstance("DSA", "BC");

signature.initSign(keyPair.getPrivate(), Utils.createFixedRandom() );

byte[] message = new byte[] { (byte) 'a', (byte) 'b', (byte) 'c' };

signature.update(message);

byte[] sigBytes = signature.sign();

signature.initVerify(keyPair.getPublic());

signature.update(message);

if (signature.verify(sigBytes)) {

System.out.println("pow");

} else {

System.out.println("nie");

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值