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…