CryptVerifySignature
验证数字签名对数据是否有效。
格式
CryptVerifySignature(数据;算法;RSA 公钥;签名)
参数
数据
- 用来表示验证签名
的数据的任意文本表达式。
算法
- 要使用的加密算法的名称(参阅CryptAuthCode 函数)。
RSA 公钥
- 表示与用来生成签名
的私钥对应的 PEM 格式的 PKCS #1 RSA 公钥的文本。
签名
- 用来验证数据
的二进制 RSA 签名,比如 CryptGenerateSignature 函数返回的值。
返回的数据类型
数字
原始版本
18.0
说明
要验证签名,该函数将数据
的消息摘要(使用指定算法)与通过使用 RSA 公钥
解密签名
获取的摘要进行比较。
RSA 公钥必须是以下格式:
复制
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqqDiwrPQwVaJzOzfFVBd
...
egkXva5cYBb8PNifmlPXVb8CAwEAAQ==
-----END PUBLIC KEY-----
如果签名对数据有效,该函数将返回 1 (真);如果签名无效,则返回 0 (假)。如果任意参数无效,则返回"?"。
示例 1
使用 SHA-512 算法生成“表::签名文本”的摘要。Base64 解码存储在“表::签名”文本字段中的签名,并返回为容器数据。使用“表::RSA 公钥”字段中的值解密签名,并将签名摘要与基于“表::签名文本”字段的摘要进行比较。如果该签名有效,则返回“1”。
复制
CryptVerifySignature (
表::签名文本 ; "SHA512" ; 表::RSA 公钥 ;
Base64Decode (
表::签名 ; "sig.data"
)
)