Skip to content

Implementação de criptografia em um serviço de forma transparente para a API.

License

Notifications You must be signed in to change notification settings

lincolngondin/desafio-criptografia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Desafio Criptografia

Esse projeto é a solução para o seguinte desafio backend, foi feito com o objetivo principal de estudo. O desafio era implementar a criptografia em um serviço de forma transparente para a API e para as camadas de serviço da aplicação.

Sobre o Projeto

Foi feito na linguagem Go, na versão 1.22 e foi utilizado o banco de dados sqlite3 para a persistencia de dados.

O projeto é uma API que ouve na porta 8080 e expõe os seguintes endpoints:

  • Para criar uma nova entidade. Os campos user_document e credit_card_token serão armazenados já criptografados no banco de dados usando a criptografia AES.
POST /users 
{
  "user_document":"123456789",
  "credit_card_token": "987654321",
  "value": 1234
}
  • Para obter uma entidade do banco de dados a partir do id. Os dados criptografados anteriormente serão retornados já descriptografados.
GET /users/{id}
  • Para deletar uma entidade a partir de seu id.
DELETE /users/{id}
  • Para atualizar uma entidade a partir do seu id.
PUT /users/{id}
{
  "user_document":"1011121314",
  "credit_card_token": "123456789",
  "value": 5678
}

Como executar

Tenha instalado a linguagem Go e o banco de dados sqlite3. Siga os seguintes passos:

  • Clone esse repositorio.
git clone https://github.com/lincolngondin/desafio-criptografia.git
  • Entre no diretorio criado
cd desafio-criptografia
  • Crie o banco de dados sqlite, e leia o arquivo schema.sql da pasta scripts usando o sqlite3.
sqlite3 ./data/database.sqlite < ./scripts/schema.sql
  • Execute o programa
go run ./cmd/app

About

Implementação de criptografia em um serviço de forma transparente para a API.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages