Verschlüsseln einer Nachricht in CAPICOM
[CAPICOM ist eine 32-Bit-Komponente, die in den folgenden Betriebssystemen verfügbar ist: Windows Server 2008, Windows Vista und Windows XP. Verwenden Sie stattdessen die .NET Framework, um Sicherheitsfeatures zu implementieren. Weitere Informationen finden Sie unter Alternativen zur Verwendung von CAPICOM.]
Diese Unterroutine verwendet eine zu verschlüsselnde Zeichenfolge, eine Kennwortzeichenfolge, die zum Generieren eines Verschlüsselungsschlüssels verwendet wird, und den Namen einer Datei, in die die verschlüsselte Nachricht geschrieben wird. Alle Parameter werden anhand von Werten an die Unterroutine übergeben. Zum Entschlüsseln der Nachricht muss dieselbe Kennwortzeichenfolge verwendet werden. Wenn das Kennwort verloren geht, kann der Text nicht entschlüsselt werden. Die Privatsphäre der Nachricht geht verloren, wenn ein unbeabsichtigter Empfänger Zugriff auf das Kennwort erhält.
Hinweis
CAPICOM unterstützt den PKCS #7 EncryptedData-Inhaltstyp nicht, verwendet jedoch eine nicht standardmäßige ASN-Struktur für EncryptedData. Daher kann nur CAPICOM ein CAPICOM EncryptedData-Objekt entschlüsseln.
Bei jedem CAPICOM-Fehler wird ein negativer Dezimalwert der Err.Number-Eigenschaft zurückgegeben. Weitere Informationen finden Sie unter CAPICOM_ERROR_CODE. Informationen zu positiven Dezimalwerten von Err.Number finden Sie unter 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