encryptoo
v1.0.13
Published
Uma lib de criptografia
Downloads
20
Maintainers
Readme
EncryptoO 🔐
Uma biblioteca de criptografia com troca de chaves embutida
Created by André Oliveira (@oliveira086)
Node.js (Install)
Pré requisitos:
- Node.js
- npm (Node.js package manager)
npm install Encryptoo
Utilização
Importação
Utilizando com Es6:
import Encryptoo from 'encryptoo';
const localPublicKey = Encryptoo.init();
Outro modo:
const Encryptoo = require('encyptoo');
const localPublicKey = Encryptoo.init();
Troca de chaves
O fluxo de troca de chaves deve partir do frontend para o backend. O front deve montar um objeto semelhate esse abaixo:
{
clientPublicKey: Encryptoo.init()
}
Após montar o objeto deverá realizar uma requisição post ao seu backend.
Após receber a requisição no backend você deve enviar sua chave publica como resposta da requisição, para o frontend.
let serverPublicKey = Encryptoo.init();
response.status(200).json({
serverPublicKey: serverPublicKey,
}).send();
Depois de receber a chave publica do frontend você decide a melhor forma de atrelar aquela chave com a sessão atual do front. Com a chave publica do frontend você já consegue encryptar e decryptar as informações fornecidas pelo front como também ele consegue decryptar as informações que o backend envia.
Encrypt 🔒
import Encryptoo from 'encryptoo';
const cryptogram = Encryptoo.encrypt(plainText, serverPublicKey);
EncryptBody 🔒
import Encryptoo from 'encryptoo';
const cryptogram = Encryptoo.encryptBody(object, serverPublicKey);
Decrypt 🔓
import Encyptoo from 'encryptoo';
const plainText = Encryptoo.decrypt(textEncrypted, serverPublicKey);
DecryptBody 🔓
import Encyptoo from 'encryptoo';
const plainText = Encryptoo.decryptBody(object, serverPublicKey);
Compare 🤝
import Encryptoo from 'encryptoo';
const verifySing = Encryptoo.compare(plainText, cryptogram, serverPublicKey);
Set secret 🔑⬅️
import Encryptoo from 'encryptoo';
Encryptoo.setSecret(secret);
O segredo deve ter 32 bytes
Get secret 🔑➡️
import Encryptoo from 'encryptoo';
const secret = Encryptoo.getSecret(serverPublicKey);
Caracteristicas
- Troca de chaves Diffie Hellman
- Criptografia AES
Atualizações futuras
- [x] Adicionar suporte para Typescript - Implementado por @4lessandrodev.
- [x] Adicionar método de sign - Implementado por @fgalmeida.
- [ ] Adicionar criptografia RSA.
Notas de Atualizações
1.0.10 ✅
- Implementação de types e suporte para typescript para as funções de encrypt e decrypt body
1.0.9 ✅
- Nessa versão foi implementada o decrypt body em versão beta, essa funcionalidade visa receber um objeto com os valores criptografados e devolver eles abertos e vice versa
1.0.8 ✅
- Implementação de types e suporte para typescript
1.0.7 ✅
- Implementação do metodo de compare(sign) para verificar se aquele criptograma realmente foi crifrado por o sistema devido.
- Foi adicionado os metodos de inserção de um segredo criptografico e a sua visualização
1.0.6 ✅
Implementação dos metódos principais de encrypt e decrypt utilizando a troca de chaves Diffie Hellman e criptografia AES.