Cross platform cryptography

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