Criptografando informações no localstorage e cookie

Bruno Seco
2 min readApr 28, 2021

--

Criptografando informações no localstorage e cookie

Bom, para isso… Já centralizamos nossas classes que salvam as informações no localstorage e cookie, deixo os link de explicação…

Lembrando também de revisar em toda sua aplicação se o consumo do localstorage (ou sessionstorage) e cookies estão sempre consumindo dessas classes criadas e não diretamente de “localStorage.setItem(…)” ou “localStorage.getItem(…)”. Conferindo e certificando isto, vamos lá…

Instale no seu projeto o pacote: https://www.npmjs.com/package/crypto-js

npm install crypto-js

Após instalar, vamos importar o crypto-js dentro da nossa classe cache.js e trabalhar, vai ficar conforme o print abaixo:

1 — Importo o componente instalado.

import CryptoJS from “crypto-js”

2 — Crio uma função para definir meu “salt”, e o valor dentro da string “lnOywPDcNeNyh&7c97ixysnXTtR” deve ser uma chave aleatória e variar por sistema, e com ela eu concateno ainda a chave do localstorage para incremetar a segurança.

function _getSalt(key)

3 — Dentro do “_get(…)” fazemos o get do localstorage e descriptografamos utilizando as informações do “salt”, inclui dentro de um try-catch para quando realizar o primeiro deploy ele não quebre a aplicação com os usuários que já tem informação salva no cache.

As duas linhas principais que fazem acontecer o decrypt são essas… É gerado os bytes e dos bytes é convertido para string.

var bytes = CryptoJS.AES.decrypt(result, _salt);var originalText = bytes.toString(CryptoJS.enc.Utf8);

4 — E no “_add(…)” e “_update(…)” écriptografado usando o “salt” e salva a string gerada no cache.

Essa linha onde faz o encrypt com o “salt” gerado no primeiro método, e o data é a string que você salvaria diretamente no storage, com isso ele retorna uma nova string criptografada:

var _newdata = CryptoJS.AES.encrypt(data, _salt).toString();

Resultando neste arquivo…

Para implementar no nosso arquivo de cookie, a lógica segue a mesma, pois criamos até com os nomes dos metodos de “add” e “get” iguais…

Sign up to discover human stories that deepen your understanding of the world.

--

--

No responses yet

Write a response