Skip to content

Latest commit

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Mis primeros pasos en Web3 馃榿

Librer铆a Criptogr谩fica en JavaScript

Esta librer铆a proporciona implementaciones de algoritmos criptogr谩ficos comunes en JavaScript, incluyendo hashes, encriptaci贸n AES, RSA, y curvas el铆pticas secp256k1 y secp256r1.

Caracter铆sticas

  • Hashes: SHA256, Keccak256 (con soporte para archivos)
  • AES: Encriptaci贸n y desencriptaci贸n de archivos
  • RSA: Generaci贸n de claves, encriptaci贸n y desencriptaci贸n
  • secp256k1: Generaci贸n de claves, firma, verificaci贸n, y c谩lculo de address Ethereum
  • secp256r1: Generaci贸n de claves, firma y verificaci贸n

Instalaci贸n

npm install

Uso

Script de Ejemplos

Para ejecutar ejemplos interactivos de la librer铆a, tienes dos opciones:

Opci贸n 1: Usando npm (recomendado)

npm run examples

Opci贸n 2: Ejecutando directamente

examples.bat

Este script ejecutar谩 varios ejemplos de uso de la librer铆a, incluyendo:

  • Generaci贸n de hashes SHA256 y Keccak256
  • Generaci贸n de claves RSA, secp256k1 y secp256r1
  • Encriptaci贸n y desencriptaci贸n AES de archivos
  • Ayuda del CLI

CLI

La librer铆a incluye un CLI para uso directo desde la l铆nea de comandos.

Hashes

# Hash de string
node main.js hash sha256 "hello"

# Hash de archivo
node main.js hash sha256 file:path/to/file.txt

AES

# Encriptar archivo
node main.js aes encrypt path/to/file.txt mykey

# Desencriptar archivo
node main.js aes decrypt path/to/file.enc mykey

RSA

# Generar claves
node main.js rsa generate

# Encriptar
node main.js rsa encrypt "data" "public_key"

# Desencriptar
node main.js rsa decrypt "encrypted_data" "private_key"

secp256k1

# Generar claves
node main.js secp256k1 generate

# Firmar
node main.js secp256k1 sign "message" "private_key"

# Verificar
node main.js secp256k1 verify "signature" "message" "public_key"

# Obtener address Ethereum
node main.js secp256k1 address "public_key"

secp256r1

# Generar claves
node main.js secp256r1 generate

# Firmar
node main.js secp256r1 sign "message" "private_key"

# Verificar
node main.js secp256r1 verify "signature_json" "message" "public_key"

Uso Program谩tico

const hash = require('./src/hash');
console.log(hash.sha256('hello'));

const aes = require('./src/aes');
aes.encryptFile('input.txt', 'key', 'output.enc');

const rsa = require('./src/rsa');
const keys = rsa.generateKeys();
const encrypted = rsa.encrypt('data', keys.publicKey);
const decrypted = rsa.decrypt(encrypted, keys.privateKey);

const secp256k1 = require('./src/secp256k1');
const keys2 = secp256k1.generateKeys();
const signature = secp256k1.sign('message', keys2.privateKey);
const isValid = secp256k1.verify(signature, 'message', keys2.publicKey);
const address = secp256k1.getAddress(keys2.publicKey);

const secp256r1 = require('./src/secp256r1');
const keys3 = secp256r1.generateKeys();
const sig = secp256r1.sign('message', keys3.privateKey);
const valid = secp256r1.verify(sig, 'message', keys3.publicKey);

Scripts Disponibles

La librer铆a incluye varios scripts npm para facilitar su uso:

npm start             # Ejecutar el CLI de la librer铆a criptogr谩fica
npm test              # Ejecutar todos los tests
npm run examples      # Ejecutar ejemplos interactivos

Tests

Ejecutar los tests con:

npm test

Dependencias

  • crypto-js
  • keccak256
  • elliptic
  • @noble/secp256k1
  • commander
  • jest

Licencia

ISC

About

Mis primeros pasos en Web3 馃榿

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages