参考 > 函数参考 > 容器函数 > CryptGenerateSignature
 

CryptGenerateSignature

生成数据的数字签名。

格式 

CryptGenerateSignature(数据;算法;RSA 私钥;密钥密码)

参数 

数据 - 用来生成签名的任意文本表达式

算法 - 要使用的加密算法的名称(参阅 CryptAuthCode 函数)。

RSA 私钥 - 表示 RSA 私钥的文本。可选择性地对秘钥加密。

密钥密码 - 用来解密 RSA 私钥的密码。如果 RSA 私钥未加密,该参数将被忽略。

返回的数据类型 

容器

源于 

FileMaker Pro 18.0 Advanced

说明 

要生成签名,该函数应先使用指定算法来计算数据参数的消息摘要。然后使用 RSA 私钥参数对摘要加密。如果私钥本身已加密,则必须提供密码作为最后一个参数密钥密码

未加密的 RSA 私钥必须是以下格式:

-----BEGIN RSA PRIVATE KEY-----
MIIJKQIBAAKCAgEAqqDiwrPQwVaJzOzfFVBdhNjRNRxghZVQ9a3S88so8piw0uRt
...
A4jh5ffbGA6rlv1kEt1Inq2XDnKASjnWQGltDWWTJFs/XBcfoFXHpYiVINmp
-----END RSA PRIVATE KEY-----

加密的 RSA 私钥必须是以下格式:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,B2EFE673714F681D

gMvo1cn1+Sjch4cPXT/Mty0pILnsbM5SsBPadRJJQtrGrM8LkkrRNdxYRBeIGUMj
...
lHGJJBHogUW4Ig3/kd4ROVHusRYLtyyfz13A96tIl6Y7lu2L7alNWQ==
-----END RSA PRIVATE KEY-----

要生成 RSA 密钥对,您可以使用 OpenSSL 工具包:请参阅 www.openssl.org

此函数将返回数据的二进制签名,作为容器数据,或返回"?"(如果任意参数无效)。您可以使用 Base64EncodeRFC 函数HexEncode 函数将容器数据转换为文本。

注释 

Runtime 解决方案不支持此函数,会返回"?"。

示例 1 

使用带有加密私钥的 SHA-512 算法对"表::签名文本"文本字段中的数据进行签名。该签名将返回作为 Base64 编码文本。

Base64EncodeRFC (4648 ;
CryptGenerateSignature (
表::签名文本 ; "SHA512" ; 表::RSA 私钥 ; $密码
)
)

相关主题 

CryptVerifySignature 函数

函数参考(类别列表)

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

关于公式

关于函数

定义计算字段

在公式中使用运算符