Freigeben über


Verschlüsseln einer Nachricht in CAPICOM

[CAPICOM ist eine 32-Bit-Komponente, die für die Verwendung in den folgenden Betriebssystemen verfügbar ist: Windows Server 2008, Windows Vista und Windows XP. Verwenden Sie stattdessen .NET Framework, um Sicherheitsfeatures zu implementieren. Weitere Informationen finden Sie unter Alternativen zur Verwendung von CAPICOM.]

Diese Unterroutine akzeptiert 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 als Wert an die Unterroutine übergeben. Um die Nachricht zu entschlüsseln, muss dieselbe Kennwortzeichenfolge verwendet werden. Wenn das Kennwort verloren geht, kann der Text nicht entschlüsselt werden. Der Datenschutz der Nachricht geht verloren, wenn ein unbeabsichtigter Empfänger Zugriff auf das Kennwort erhält.

Anmerkung

CAPICOM unterstützt nicht den PKCS #7 EncryptedData-Inhaltstyp, verwendet jedoch eine nicht standardmäßige ASN-Struktur für EncryptedData. Daher kann nur CAPICOM ein CAPICOM EncryptedData-Objekt entschlüsseln.

 

Bei einem 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.Numberfinden 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