CryptGenerateSignature
Genererar den digitala signaturen för data.
Format
CryptGenerateSignature ( data ; algoritm ; privatRSANyckel ; nyckelLösenord )
Parametrar
data
– ett textuttryck som en signatur ska genereras från.
algoritm
- namnet på den kryptografiska algoritm som ska användas (mer information finns i Funktionen CryptAuthCode).
privatRSANyckel
– text som representerar en privat (hemlig) RSA-nyckel. Nyckeln kan vara krypterad.
nyckelLösenord
– lösenordet som avkrypterar privatRSANyckel
. Om privatRSANyckel
inte är krypterad ignoreras den här parametern.
Returnerad datatyp
container
Ursprungsversion
18.0
Beskrivning
För att skapa en signatur beräknar den här funktionen först meddelandesammandraget för parametern data
med hjälp av den angivna algoritmen. Sammandraget krypteras med parametern privatRSANyckel
. Om den privata nyckeln själv är krypterad måste du ange lösenordet som den sista parametern, nyckelLösenord
.
En okrypterad privat RSA-nyckel måste ha det här formatet:
-----BEGIN RSA PRIVATE KEY-----
MIIJKQIBAAKCAgEAqqDiwrPQwVaJzOzfFVBdhNjRNRxghZVQ9a3S88so8piw0uRt
...
A4jh5ffbGA6rlv1kEt1Inq2XDnKASjnWQGltDWWTJFs/XBcfoFXHpYiVINmp
-----END RSA PRIVATE KEY-----
En krypterad privat RSA-nyckel måste ha det här formatet:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,B2EFE673714F681D
gMvo1cn1+Sjch4cPXT/Mty0pILnsbM5SsBPadRJJQtrGrM8LkkrRNdxYRBeIGUMj
...
lHGJJBHogUW4Ig3/kd4ROVHusRYLtyyfz13A96tIl6Y7lu2L7alNWQ==
-----END RSA PRIVATE KEY-----
Du kan använda OpenSSL-verktygen för att skapa ett RSA-nyckelpar. Mer information finns i www.openssl.org.
Den här funktionen returnerar en binär signatur av data
som containerdata, eller också returnerar den "?" om någon av parametrarna är ogiltig. Du kan konvertera containerdata till text med Funktionen Base64EncodeRFC eller Funktionen HexEncode.
Exempel 1
Använder SHA-512-algoritmen med en krypterad privat nyckel för att signera data i textfältet Tabell::TextAttSignera. Signaturen returneras som Base64-kodad text.
Base64EncodeRFC ( 4648 ;
CryptGenerateSignature (
Tabell::TextAttSignera ; "SHA512" ; Tabell::PrivatRSANyckel ; $Lösenord
)
)