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 Encyptoo from 'encryptoo';
const plainText = Encryptoo.decrypt(textEncrypted, serverPublicKey);
- Troca de chaves Diffie Hellaman
- Criptografia AES
- Adicionar suporte para Typescript.
- Adicionar método de sign.
- Adicionar criptografia RSA.
Implementação dos metódos principais de encrypt e decrypt utilizando a troca de chaves Diffie Hellman e criptografia AES.