Criptografia em TypeScript: Visão geral da biblioteca crypto-js

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

O que é crypto-js?

crypto-js é uma biblioteca popular para JavaScript e TypeScript que fornece implementações de algoritmos criptográficos padrão. Ela não requer Node.js e funciona tanto no navegador quanto no servidor. Em projetos TypeScript, o crypto-js permite criptografar, descriptografar, fazer hash de dados e gerar assinaturas HMAC facilmente, sem usar APIs criptográficas nativas.

Por que a criptografia é necessária em TypeScript?

Em aplicações web, muitas vezes surge a necessidade de proteger dados: senhas, tokens, mensagens pessoais. O TypeScript por si só não fornece funções criptográficas, então os desenvolvedores usam bibliotecas. O crypto-js cobre a maioria das necessidades básicas: hash (SHA-256, MD5), criptografia simétrica (AES, DES, Triple DES) e HMAC. Isso é importante para armazenamento seguro de senhas, criptografia de dados antes de enviar ao servidor ou para trabalhar com JWT.

Instalação

Instalação via npm (ou yarn):
npm install crypto-js
npm install @types/crypto-js (para tipos TypeScript)

Funções principais

  • Hash: SHA-256, SHA-512, MD5, SHA-1, RIPEMD-160
  • Criptografia simétrica: AES, DES, Triple DES, Rabbit, RC4, RC4Drop
  • HMAC: HMAC-SHA256, HMAC-MD5 e outros
  • Codificação/decodificação: Base64, Hex, UTF-8, Latin1

Exemplo de código em TypeScript

import CryptoJS from 'crypto-js';

// Hash SHA-256const hash = CryptoJS.SHA256('Hello, world!');console.log(hash.toString()); // string hex

// Criptografia AESconst secretKey = 'my-secret-key';const encrypted = CryptoJS.AES.encrypt('Secret data', secretKey).toString();console.log('Criptografado:', encrypted);

// Descriptografiaconst decrypted = CryptoJS.AES.decrypt(encrypted, secretKey);const plaintext = decrypted.toString(CryptoJS.enc.Utf8);console.log('Descriptografado:', plaintext);

// HMAC-SHA256const hmac = CryptoJS.HmacSHA256('message', 'key');console.log('HMAC:', hmac.toString());

// MD5 (para verificação de integridade)const md5 = CryptoJS.MD5('data');console.log('MD5:', md5.toString());

Quando usar crypto-js?

  • Criptografia de dados no cliente: por exemplo, antes de enviar ao servidor (mas lembre-se de que a chave pode ser comprometida).
  • Hash de senhas no servidor: para armazenamento em banco de dados (é melhor usar bibliotecas especializadas, mas o crypto-js é adequado para casos simples).
  • Verificação de integridade de mensagens: usando HMAC.
  • Geração de tokens: por exemplo, para links de uso único.
  • Trabalho com sistemas legados: onde MD5 ou DES são necessários.

Importante: o crypto-js não é recomendado para sistemas de alta carga ou críticos para a segurança — use Web Crypto API ou node:crypto. Mas para tarefas típicas e projetos pequenos, continua sendo uma solução simples e conveniente.

Recommendations