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