Created by André Oliveira (@oliveira086)
Pré requisitos:
- Node.js
- npm (Node.js package manager)
npm install Encryptoo
Utilizando com Es6:
import Encryptoo from 'encryptoo';
const localPublicKey = Encryptoo.init();
Outro modo:
const Encryptoo = require('encyptoo');
const localPublicKey = Encryptoo.init();
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.
import Encryptoo from 'encryptoo';
const cryptogram = Encryptoo.encrypt(plainText, serverPublicKey);
import Encryptoo from 'encryptoo';
const cryptogram = Encryptoo.encryptBody(object, serverPublicKey);
import Encyptoo from 'encryptoo';
const plainText = Encryptoo.decrypt(textEncrypted, serverPublicKey);
import Encyptoo from 'encryptoo';
const plainText = Encryptoo.decryptBody(object, serverPublicKey);
import Encryptoo from 'encryptoo';
const verifySing = Encryptoo.compare(plainText, cryptogram, serverPublicKey);
import Encryptoo from 'encryptoo';
Encryptoo.setSecret(secret);
O segredo deve ter 32 bytes
import Encryptoo from 'encryptoo';
const secret = Encryptoo.getSecret(serverPublicKey);
- Troca de chaves Diffie Hellman
- Criptografia AES
- Adicionar suporte para Typescript.
- Adicionar método de sign - Implementado por @fgalmeida
- Adicionar criptografia RSA.
- Implementação de types e suporte para typescript para as funções de encrypt e decrypt body
- 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
- Implementação de types e suporte para typescript
- 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
Implementação dos metódos principais de encrypt e decrypt utilizando a troca de chaves Diffie Hellman e criptografia AES.