Die Programme auf dieser Webseite und ihre Schwesterseite javacrypto.bplaced.net sind ausnahmslos in der Programmiersprache Java erstellt worden.
Als aktiver Benutzer der Webseite https://stackoverflow.com sehe ich allerdings immer wieder mit Fragen mit dem Titel „verschlüsselt in Java und entschlüsselt in PHP“ oder „Signatur in NodeJS und Überprüfung in C#“. Das brachte mich dazu, plattform übergreifende Programme zu erstellen. Die Artikelserie habe ich komplett innerhalb meines GitHub-Repositories erstellt, welches Ihr über diesen Link aufrufen könnt: https://github.com/java-crypto/cross_platform_crypto.
Eine breite Vielfalt an Programmiersprachen („frameworks“) ist vorhanden – Ihr findet Lösungen für Java, PHP, C# sowie Javascript mit den Crypto-Bibliotheken CryptoJs, dem in NodeJs eingebauten Crypto-Modul, node-forge sowie teilweise in direkt lauffähigen Browser-Webcrypto-Modul.
Folgende Probleme wurden bereits gelöst:
Generelle Routinen: erzeuge einen zufalls AES-schlüssel, einen Initialisierungs Vector (IV) und einen Nonce, HMAC 256 Berechnung, Passwort Ableitung mittels PBKDF2, erzeuge ein RSA Schlüsselpaar, erzeuge X25519 Schlüssel
AES string Verschlüsselung: AES 256 CBC modus, (jeweils mit Zufalls-Schlüssel und PBKDF2 erzeugtem Schlüssel)
RSA string Verschlüsselung: RSA OAEP SHA1 padding
RSA string Signatur: RSA 2048 Signatur
Curve 25519 Schlüssel Austausch: Curve 25519 Schlüssel Austausch und AES CBC modus 256 string Verschlüsselung
Alle Beschreibungen sind in Englisch erstellt und alle Lösungen sind online startfähig.
Letzte Aktualisierung: 07.12.2020