CryptGenerateSignature
生成数据的数字签名。
格式
CryptGenerateSignature(数据;算法;RSA 私钥;密钥密码)
参数
数据
- 用来生成签名的任意文本表达式。
算法
- 要使用的加密算法的名称(参阅CryptAuthCode 函数)。
RSA 私钥
- 表示 RSA 私钥的文本。可选择性地对秘钥加密。
密钥密码
- 用来解密 RSA 私钥
的密码。如果 RSA 私钥
未加密,该参数将被忽略。
返回的数据类型
容器
原始版本
18.0
说明
要生成签名,该函数应先使用指定算法来计算数据
参数的消息摘要。然后使用 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 函数将容器数据转换为文本。
示例 1
使用带有加密私钥的 SHA-512 算法对“表::签名文本”文本字段中的数据进行签名。该签名将返回作为 Base64 编码文本。
复制
Base64EncodeRFC ( 4648 ;
CryptGenerateSignature (
表::签名文本 ; "SHA512" ; 表::RSA 私钥 ; $密码
)
)