gx-twofish64
Version:
A library for encrypting and decrypting data using the Twofish algorithm and Base64 encoding. Based on the Genexus implementation (Encrypt64 and Decrypt64).
52 lines (33 loc) • 1.51 kB
Markdown
# gx-twofish64
Encriptación y desencriptación compatible con GeneXus usando el algoritmo **Twofish** y codificación **Base64**.
Este paquete reproduce la lógica de `Encrypt64` y `Decrypt64` usada en GeneXus, permitiendo interoperabilidad con sistemas desarrollados en esa plataforma.
## Instalación
```bash
npm install gx-twofish64
```
# Uso
```ts
import { encrypt64, decrypt64 } from 'gx-twofish64'
const text = 'Hola mundo'
const hexKey = '21972247ba570855360dbf70c8fa2e0e' // Clave hexadecimal válida (32 chars para 128 bits)
const encrypted = encrypt64(text, hexKey)
console.log('Encriptado:', encrypted)
const decrypted = decrypt64(encrypted, hexKey)
console.log('Desencriptado:', decrypted)
```
# API
### `encrypt64(text: string, hexKey: string): string`
- `text`: Texto plano a encriptar.
- `hexKey`: Clave en formato hexadecimal. Debe tener 16 bytes (32 caracteres hex).
- Devuelve: Texto encriptado como Base64.
### `decrypt64(base64Text: string, hexKey: string): string`
- `base64Text`: Texto encriptado en Base64.
- `hexKey`: Clave en formato hexadecimal (misma que la usada para encriptar).
- Devuelve: Texto desencriptado.
# Detalles técnicos
- Algoritmo: Twofish en modo ECB.
- Tamaño de bloque: 16 bytes.
- Padding: Se utiliza padding con espacio (0x20) como hace GeneXus.
- Codificación: Base64.
# Compatibilidad
✔ Compatible con valores generados por `Encrypt64()` y `Decrypt64()` de GeneXus.