CryptGenerateSignature
Genera la firma digitale dei dati.
Formato
CryptGenerateSignature ( dati ; algoritmo ; chiaveRSAPrivata ; passwordChiave )
Parametri
dati
- qualsiasi espressione di testo da cui generare una firma.
algoritmo
- il nome dell'algoritmo crittografico da utilizzare (vedere la funzione CryptAuthCode).
chiaveRSAPrivata
- testo che rappresenta una chiave RSA privata. Se lo si desidera, la chiave può essere crittografata.
passwordChiave
- la password con cui decrittare chiaveRSAPrivata
. Se chiaveRSAPrivata
non è crittografata, questo parametro viene ignorato.
Tipo di dati riportato
Contenitore
Creata nella versione
18.0
Descrizione
Per generare una firma, questa funzione calcola innanzitutto il digest del messaggio del parametro dati
utilizzando l'algoritmo specificato. Quindi il digest viene crittografato con il parametro chiaveRSAPrivata
. Se anche la chiave privata è crittografata, è necessario fornire la password come ultimo parametro, passwordChiave
.
Una chiave RSA privata non crittografata deve essere in questo formato:
-----BEGIN RSA PRIVATE KEY-----
MIIJKQIBAAKCAgEAqqDiwrPQwVaJzOzfFVBdhNjRNRxghZVQ9a3S88so8piw0uRt
...
A4jh5ffbGA6rlv1kEt1Inq2XDnKASjnWQGltDWWTJFs/XBcfoFXHpYiVINmp
-----END RSA PRIVATE KEY-----
Una chiave RSA privata crittografata deve essere in questo formato:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,B2EFE673714F681D
gMvo1cn1+Sjch4cPXT/Mty0pILnsbM5SsBPadRJJQtrGrM8LkkrRNdxYRBeIGUMj
...
lHGJJBHogUW4Ig3/kd4ROVHusRYLtyyfz13A96tIl6Y7lu2L7alNWQ==
-----END RSA PRIVATE KEY-----
Per generare una coppia di chiavi RSA, è possibile utilizzare il toolkit OpenSSL. Vedere www.openssl.org.
Questa funzione restituisce una firma binaria di dati
come dati Contenitore o restituisce "?" se uno dei parametri non è valido. È possibile convertire i dati Contenitore in testo utilizzando la funzione Base64EncodeRFC o la funzione HexEncode.
Esempio 1
Utilizza l'algoritmo SHA-512 con una chiave privata crittografata per firmare i dati nel campo Testo Tabella::TestoDaFirmare. La firma viene restituita in formato testo con codifica Base64.
Base64EncodeRFC ( 4648 ;
CryptGenerateSignature (
Tabella::TestoDaFirmare ; "SHA512" ; Tabella::ChiaveRSAPrivata ; $Password
)
)