@azify/memo-encryption
v1.0.0
Published
Biblioteca TypeScript para criptografia e validação de memos/tokens baseados em entidades, tipos e IDs.
Keywords
Readme
Memo Encryption
Biblioteca TypeScript para criptografia e validação de memos/tokens baseados em entidades, tipos e IDs.
📋 Descrição
O memo-encryption é uma biblioteca que gera tokens criptografados no formato JSON ({entity, type, entityId, token}), permitindo validação segura de operações financeiras e transações. Os JSONs são sanitizados removendo espaços em branco para otimização.
🚀 Instalação
npm install⚙️ Configuração
Crie um arquivo .env na raiz do projeto com a chave secreta:
SECRET_KEY_ENCRYPT=sua_chave_secreta_aqui💻 Uso
Criptografar um memo
import memo from './factories/memo';
const result = memo.encrypt({
entity: 'Azimut Dtvm Entry',
type: 'Resgate de Cota de Fundo',
entityId: '23333'
});
// Retorna JSON stringificado sem espaços: '{"entity":"AzimutDtvmEntry","type":"ResgatedeCotadeFundo","entityId":"23333","token":"hash_md5"}'Validar um memo
const jsonValue = '{"entity":"AzimutDtvmEntry","type":"ResgatedeCotadeFundo","entityId":"23333","token":"hash_recebido"}';
const validation = memo.validate(jsonValue);
console.log(validation.isSameValue); // true ou false🔧 Funcionalidades
- Formato JSON: Trabalha com objetos JSON stringificados para melhor estruturação
- Sanitização automática: Remove espaços em branco dos JSONs para otimização
- Hash MD5: Gera hash seguro usando MD5 com chave secreta
- Validação: Verifica a integridade de tokens recebidos através de comparação de hash
- TypeScript: Totalmente tipado
📁 Estrutura
src/
├── factories/
│ └── memo.ts # Classe principal de criptografia
├── helpers/
│ └── index.ts # Funções auxiliares (sanitizeToCamelCase, sanitizeRemoveWhiteSpaces)
├── interfaces/
│ └── index.ts # Enums e tipos (TypeOperation, Entity)
└── index.ts # Arquivo principal de exemplo🔐 Segurança
O hash é calculado usando MD5 com uma chave secreta armazenada em variável de ambiente, garantindo que apenas quem possui a chave possa validar os tokens.
📝 Licença
ISC
