Windows C/C++ Crypto API Beispiele und Tipps

Lesezeit: 3 Minuten

Benutzeravatar von Gearoid Murphy
Gearoid Murphy

Ich stelle diese Frage, weil ich den größten Teil eines Tages damit verbracht habe, msdn-Dokumente und andere undurchsichtige Quellen nach einfachen, unkomplizierten Richtlinien für den Einstieg in die Windows C/C++ Crypto API zu durchsuchen.

Was ich gerne sehen würde, ist ein Beispielcode, typische Include-Pfade, Verknüpfungsrichtlinien usw., wirklich alles Nützliche. Ich weiß, dass dies eine ungenaue Frage ist, aber ich denke, dass ungenaue Antworten gar keine sind.

Ich werde den Stein mit meinen eigenen mageren Erkenntnissen ins Rollen bringen…

  • Meinst du die klassische CryptoAPI wie in Win2k und XP oder CNG (“CryptoAPI Next Generation”) wie in Vista und Win7? Die beiden sind nicht gleich.

    – dajamas

    25. Januar 2011 um 17:53 Uhr

  • Hmm, ich nehme an, ich meine die CryptoAPI, aber ich kompiliere auf einem Windows 7-System.

    – Gearoid Murphy

    25. Januar 2011 um 18:19 Uhr

  • Es wäre besser, CNG zu verwenden

    – Michael Chordakis

    5. November 2018 um 22:08 Uhr

Benutzeravatar von Gearoid Murphy
Gearoid Murphy

Hier sind ein paar Beispiele, die ich gefunden habe….

MSDN hat diese Beispiele im Internet verstreut Dokumente

Das Webseite bietet einen guten Überblick über die Konzepte zusammen mit plattformübergreifenden Beispielen

  • Sie können Ihre beiden Antworten einfach zusammenführen.

    – Andre Caron

    26. Januar 2011 um 18:59 Uhr

  • Wow, und kein Beispiel, das einfach Daten verschlüsselt.

    – Jonathan Holz

    19. April 2021 um 19:09 Uhr

Benutzeravatar von Gearoid Murphy
Gearoid Murphy

Die msdn-Dokumente sind hier: http://msdn.microsoft.com/en-us/library/aa380252.aspx

Dies ist die Haupt-Include-Datei: #include <wincrypt.h>

Die Kryptografie-Bits sind als Teil der enthalten Windows-SDKdie normalerweise in installiert wird %PROGRAMFILES(x86)%\Microsoft SDKs\Windows\SDKVERSION (z.B, C:\Program Files\Microsoft SDKs\Windows\v6.0A). Die Header sind normalerweise in %WINDOWSSDK%\Includeund die zugehörigen Bibliotheken sind in %WINDOWSSDK%\Lib.

Sie müssen explizit auf die Kryptografiebibliotheken verlinken. Angenommen, Sie befinden sich in Visual Studio, können Sie den Verweis hinzufügen, indem Sie mit der rechten Maustaste auf das C++-Projekt klicken, Eigenschaften auswählen und in der Strukturansicht links Konfigurationseigenschaften -> Linker auswählen. Sie können dann angeben crypt32.lib im Eingabefeld rechts.

Alternativ (vorausgesetzt, Sie verwenden msvc++) add

#pragma comment(lib, "crypt32.lib")

zu deiner Quelle.

  • Ich habe diese Antwort erheblich überarbeitet und erweitert. Bitte überprüfen Sie, ob Sie die Änderungen für nützlich halten 🙂

    – Billy ONeal

    25. Januar 2011 um 17:54 Uhr

  • Ah!, danke, ich wäre nie auf die Idee gekommen, die Direktive #pragma zu verwenden.

    – Gearoid Murphy

    25. Januar 2011 um 18:18 Uhr

  • Ich habe #include und #include in meinem VC++ 2017-Projekt verwendet und beim Aufruf ihrer API-Funktionen den Fehler “LNK2019” erhalten. Das Hinzufügen der Zeile #pragma comment(lib, “crypt32.lib”) löste es! Danke: D

    – Zerbrochenes Fenster

    11. September 2019 um 17:29 Uhr


  • Wow, danke, ich frage mich, warum dies nicht Teil eines MSDN-Leitfadens ist.

    – linbianxiaocao

    7. Februar 2020 um 17:13 Uhr

Es gibt auch ein längeres Beispiel Verschlüsselung mit der Win32 Crypto API drüben beim Code-Projekt.

Nach stundenlanger Suche bin ich hier fündig geworden: https://learn.microsoft.com/en-us/troubleshoot/windows/win32/get-information-authenticode-signed-executables

Es ist detailliert und es funktioniert.

1447510cookie-checkWindows C/C++ Crypto API Beispiele und Tipps

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy