Crittografia di un messaggio in CAPICOM
[CAPICOM è un componente solo a 32 bit disponibile per l'uso nei sistemi operativi seguenti: Windows Server 2008, Windows Vista e Windows XP. Usare invece .NET Framework per implementare le funzionalità di sicurezza. Per altre informazioni, vedere Alternative all'uso di CAPICOM.]
Questa subroutine accetta una stringa da crittografare, una stringa password da usare per generare una chiave di crittografia e il nome di un file in cui verrà scritto il messaggio crittografato. Tutti i parametri vengono passati alla subroutine in base ai valori. Per decrittografare il messaggio, è necessario usare la stessa stringa di password. Se la password viene persa, il testo non può essere decrittografato. La privacy del messaggio viene persa se un destinatario non intenzionale ottiene l'accesso alla password.
Nota
CAPICOM non supporta il tipo di contenuto PKCS #7 EncryptedData, ma usa una struttura ASN non standard per EncryptedData. Di conseguenza, solo CAPICOM può decrittografare un oggetto CAPICOM EncryptedData.
In caso di errore CAPICOM, viene restituito un valore decimale negativo della proprietà Err.Number . Per altre informazioni, vedere CAPICOM_ERROR_CODE. Per informazioni sui valori decimali positivi di Err.Number, vedere Winerror.h.
Sub EncryptMessage(ByVal TobeEncrypted As String, ByVal hidden _
As String, ByVal filename As String)
On Error GoTo ErrorHandler
' Declare and initialize an EncryptedData object.
' Algorithm.Name and KeyLength do not need to be set.
Dim message As New EncryptedData
message.Content = Tobeencrypted
message.SetSecret(hidden)
' Optionally, the encryption algorithm and key length can be set.
' If these properties are not set, the default algorithm and key
' length are used.
' Information about the algorithm and key length is saved with
' the encrypted string and the individual decrypting the message
' does not need to set these properties.
message.Algorithm.Name = CAPICOM_ENCRYPTION_ALGORITHM_DES
' Declare the string that will hold the encrypted message.
Dim encryptedmessage As String
' Encrypt the message storing the result in the encryptedmessage
' string.
encryptedmessage = message.Encrypt
' Optionally, check the length of the encrypted string to
' make sure that the encrypt method worked.
If Len(encryptedmessage) < 1 Then
MsgBox("no message encrypted. ")
Else
MsgBox(" Message is " & Len(encryptedmessage) & " characters")
' Open an output file and write the encrypted message to the
' file. The file is not opened if there is no message
' to write.
Open filename For Output As #1
Write #1, encryptedmessage
Close #1
MsgBox("Encrypted message written to file ")
End If
' Release the EncryptedData object.
message = Nothing
Exit Sub
ErrorHandler:
If Err.Number > 0 Then
MsgBox("Visual Basic error found:" & Err.Description)
Else
MsgBox("CAPICOM error found : " & Err.Number)
End If
End Sub