签名和加密的使用

  1. 签名:
    私钥签名, 公钥验签
	// 私钥签名
	String sign = RsaInstance.sign("待签名的内容" , privateKey); 
	// 公钥验签
	Boolean check = RsaInstance.verify("待签名的内容", sign, publicKey);
  1. 加密:
    公钥加密, 私钥解密

  2. 签名和加密共同使用示例 :
    A的公钥pubKeyA, A的私钥priKeyA
    B的公钥pubKeyB, B的私钥priKeyB
    A想把字符串String str签名加密后传给B, 流程如下:

    3.1. A用priKeyA对str签名得到sign,
    3.2. A然后用pubKeyB对str和sign加密得到密文secret,
    3.3. B先用priKeyB对密文secret解密得到str和sign,
    3.4. B然后用pubKeyA对str,sign验签, 证明str是A发送给B的,
    3.5. 至此, A已完成发送给B的信息str的任务.

  3. 分析 :
    A有3个钥匙:pubKeyA, priKeyA, pubKeyB
    B有3个钥匙:pubKeyB, priKeyB, pubKeyA
    A用A的私钥签名, 因为B有A的公钥, 所以可以验签,
    A用B的公钥加密, 因为B有B的私钥, 所以可以解密.
    A加密, 是为了防止被窃听,
    B验签, 是为了证明是A想发的内容, 而不是被更改的内容.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值