Criptografia Link do desafio
Seu desafio será implementar a criptografia de um sistema de maneira transparente para a API e para as camadas de serviço de sua aplicação. Ou seja, seus objetos de entidades não devem transparecer se existe algum campo sensível ou não. A criptografia deve ser feita em uma conversão em tempo de execução da entidade para a coluna em seu banco de dados, e vice-versa
Considere userDocument
e creditCardToken
como campos sensíveis e que devem ser encriptados:
id | userDocument | creditCardToken | value |
---|---|---|---|
1 | MzYxNDA3ODE4MzM= | YWJjMTIz | 5999 |
2 | MzI5NDU0MTA1ODM= | eHl6NDU2 | 1000 |
3 | NzYwNzc0NTIzODY= | Nzg5eHB0bw== | 1500 |
onde, na sua entidade:
Campo | Tipo |
---|---|
id | Long |
userDocument | String |
creditCardToken | String |
value | Long |
-
Faça um CRUD simples, considerando como sensíveis os campos citados acima
-
Use o algoritmo de sua preferência para criptografia. Sugestão: SHA-512 ou PBKDF2
-
Caso tenha alguma dúvida na implementação do conversor, procure por
Attribute Converter
na sua linguagem
Clone o repositório
git clone https://github.com/Drb-Diego/desafio-2-backend-br.git
Depois execute os seguintes comando
yarn
yarn start
OBS: Não se esqueça de criar o arquivo ".env" e declarar as variveis de ambiente conforme o ".env.example", antes de rodar o projeto.