Was ist crypto-js?
crypto-js ist eine beliebte Bibliothek für JavaScript und TypeScript, die Implementierungen standardmäßiger kryptografischer Algorithmen bereitstellt. Sie benötigt kein Node.js und funktioniert sowohl im Browser als auch auf dem Server. In TypeScript-Projekten ermöglicht crypto-js das einfache Verschlüsseln, Entschlüsseln, Hashen von Daten und das Generieren von HMAC-Signaturen ohne Verwendung nativer kryptografischer APIs.
Warum wird Kryptografie in TypeScript benötigt?
In Webanwendungen besteht häufig die Notwendigkeit, Daten zu schützen: Passwörter, Tokens, private Nachrichten. TypeScript selbst bietet keine kryptografischen Funktionen, daher verwenden Entwickler Bibliotheken. crypto-js deckt die meisten grundlegenden Anforderungen ab: Hashing (SHA-256, MD5), symmetrische Verschlüsselung (AES, DES, Triple DES) und HMAC. Dies ist wichtig für die sichere Speicherung von Passwörtern, die Verschlüsselung von Daten vor dem Senden an den Server oder für die Arbeit mit JWT.
Installation
Installation über npm (oder yarn):npm install crypto-jsnpm install @types/crypto-js (für TypeScript-Typen)
Hauptfunktionen
- Hashing: SHA-256, SHA-512, MD5, SHA-1, RIPEMD-160
- Symmetrische Verschlüsselung: AES, DES, Triple DES, Rabbit, RC4, RC4Drop
- HMAC: HMAC-SHA256, HMAC-MD5 und andere
- Kodierung/Dekodierung: Base64, Hex, UTF-8, Latin1
Codebeispiel in TypeScript
import CryptoJS from 'crypto-js';
// SHA-256 Hashingconst hash = CryptoJS.SHA256('Hello, world!');console.log(hash.toString()); // hex-string
// AES Verschlüsselungconst secretKey = 'my-secret-key';const encrypted = CryptoJS.AES.encrypt('Secret data', secretKey).toString();console.log('Verschlüsselt:', encrypted);
// Entschlüsselungconst decrypted = CryptoJS.AES.decrypt(encrypted, secretKey);const plaintext = decrypted.toString(CryptoJS.enc.Utf8);console.log('Entschlüsselt:', plaintext);
// HMAC-SHA256const hmac = CryptoJS.HmacSHA256('message', 'key');console.log('HMAC:', hmac.toString());
// MD5 (für Integritätsprüfung)const md5 = CryptoJS.MD5('data');console.log('MD5:', md5.toString());Wann sollte man crypto-js verwenden?
- Datenverschlüsselung auf dem Client: z. B. vor dem Senden an den Server (aber denken Sie daran, dass der Schlüssel kompromittiert werden kann).
- Passwort-Hashing auf dem Server: zur Speicherung in der Datenbank (besser spezialisierte Bibliotheken verwenden, aber crypto-js eignet sich für einfache Fälle).
- Überprüfung der Nachrichtenintegrität: mit HMAC.
- Token-Generierung: z. B. für Einmal-Links.
- Arbeit mit veralteten Systemen: wo MD5 oder DES erforderlich sind.
Wichtig: crypto-js wird nicht für hochbelastete oder sicherheitskritische Systeme empfohlen – verwenden Sie die Web Crypto API oder node:crypto. Für typische Aufgaben und kleinere Projekte bleibt es jedoch eine einfache und praktische Lösung.
Auch in der Bibliothek
Kryptographie in Swift (iOS/macOS): Verschlüsselung und Hashing
Superstruct für TypeScript: Komplettguide mit Beispielen
Arbeiten mit Daten in Swift: Foundation und DateFormatter
SMS-Versand mit PHP: API-Bibliotheken von sms.ru und anderen Diensten
Markdown-Verarbeitung in C# (.NET): Bibliotheken und Werkzeuge