参考 > 函数参考 > 容器函数 > CryptVerifySignature
 

CryptVerifySignature

验证数字签名对数据是否有效。

格式 

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 解决方案不支持此函数,会返回"?"。

示例 1 

使用 SHA-512 算法生成"表::签名文本"的摘要。Base64 解码存储在"表::签名"文本字段中的签名,并返回为容器数据。使用"表::RSA 公钥"字段中的值解密签名,并将签名摘要与基于"表::签名文本"字段的摘要进行比较。如果该签名有效,则返回"1"。

CryptVerifySignature (
表::签名文本 ; "SHA512" ; 表::RSA 公钥 ;
Base64Decode (
表::签名 ; "sig.data"
)
)

相关主题 

函数参考(类别列表)

函数参考(按字母顺序排序的列表)

关于公式

关于函数

定义计算字段

在公式中使用运算符