Kryptografie in TypeScript: Überblick über die Bibliothek crypto-js

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

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-js
npm 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.

Empfehlungen