RSASignature算法的编程与使用

RSASingature 算法基本概念

    1.RSA签名算法概念

将RSA公钥密码算法按照数字签名的方式运用

    1.1.RSA签名算法分类(JDK实现)

    (1)MD(MD2withRSA,MD5withRSA)

    (2)SHA(SHA1withRSA,SHA256withRSA,SHA384withRSA,SHA512withRSA)

    2.RSA算法编程使用

1.签名(参数:数据源,私钥)

 //实力化Signature

Signature signature = Signature.getInstance("MD5withRSA");

//初始化Signature

signature.initSign(privateKey);

//更新

signature.update(data) //data是加密数据(通过摘要算法截取一段固定长度的数据源)

//生成签名

byte[] sign = signature.sign();

2.验证(原始数据,公钥,签名值)

//实例化Signature

Signature signature = Signature.getInstance("MD5withRSA");

//初始化Signature

signature.initVerify(publicKey);

//更新

signature.update(data);

//验证

boolean isValid = signature.verify(sign);


2.DSASignature 算法基本概念

     DSA签名算法实行就是RSA签名算法实现的简装版,仅支持SHA系列算法

2.2DSA签名算法分类(JDK实现)

SHA1withDSA

3.DSA算法编程使用

1.签名

//实例化Signature

Signature signature = Signature.getInstance("SHA1withDSA");

//初始化sign

signature.initSign(privateKey);

//更新

signature.update(data);

//生成签名

byte[] sign = signature.sign();

2.验证

//实例化Signature

Signature signature = Signature.getInstance("SHA1withDSA");

//初始化verify

signature.verify(publicKey);

//更新数据

signature.update(data);

//验证

boolean isValid = signature.verify(sign);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值