对hash值的数字签名和验证 ——C语言实例

 对hash值的数字签名和验证 ——C语言实例

下面的程序首先计算一串数据的hash值并对hash值进行数字签名,对其数字签名进行验证。签名者使用私钥对hash值进行签名,将自己的公钥发布以便他人验证数字签名。这个实例执行步骤以及用的的API如下:

1 使用 CryptAcquireContext 获取加密服务提供商的句柄(handle);
2 使用 CryptGetUserKey 获取用户的签名密钥对;
3 使用 CryptExportKey 创建一个公钥博客(PUBLICKEYBLOG),用以存放签名者的公钥,PUBLICKEYBLOG将在签名验证时用到;
4 使用 CryptCreateHash 创建一个hash对象;
5 使用 CryptHashData 对待签名的数据做hash运算;
6 使用 CryptSignHash 对hash值做签名运算;
7 使用 CryptDestroyHash 销毁hash对象。
签名验证:
1 使用 CryptImportKey 从PUBLICKEYBLOG中取得签名验证的公钥;
2 使用 CryptCreateHash 创建一个hash对象;
3 使用 CryptHashData 对数据做hash运算;
4 使用 CryptVerifySignature 验证数字签名。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值