Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
NodeJS Crypto
Search
Lucas Santos
August 01, 2019
Programming
150
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
NodeJS Crypto
Lucas Santos
August 01, 2019
More Decks by Lucas Santos
See All by Lucas Santos
The Hitchhiker's Guide for an Amazing API with TypeScript
khaosdoctor
0
130
Escalando globalmente com TypeScript e JavaScript na Klarna
khaosdoctor
0
220
The future of JavaScript
khaosdoctor
0
96
TypeScript tips that could save your life
khaosdoctor
0
260
É hora de falar sobre Deno
khaosdoctor
0
96
JS Software testing for beginners
khaosdoctor
0
110
Ambientes dinâmicos com GitHub Actions
khaosdoctor
0
71
The Dark Side of JavaScript
khaosdoctor
0
99
Integrating Containers Into JavaScript
khaosdoctor
0
89
Other Decks in Programming
See All in Programming
自分的「カンファレンスの楽しみ方」
syumai
0
200
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
300
20260828_品質と開発生産性を両立させる、AI時代のE2Eテストの考え方
magicpod
0
190
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
6
1.9k
個人開発基盤をまるごとCloudflareに引っ越して爆速で総合的体験を向上させた話
tinykitten
0
160
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
450
週末にAI-DLCを本気で回したら$1,600溶けた
hbashimizu
0
130
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
0
120
業務時間外もAIに働いてもらう話
colorful12
3
10k
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
150
「AI時代、配布するPythonコードをどう守るか: 難読化の実験と判断軸」 #PyconJP2026
pkshadeck
PRO
2
190
Intent as Code
shoppingjaws
6
900
Featured
See All Featured
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
590
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
440
Utilizing Notion as your number one productivity tool
mfonobong
4
590
Design in an AI World
tapps
1
310
For a Future-Friendly Web
brad_frost
183
10k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
530
Designing for Performance
lara
611
70k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
410
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
500
Building AI with AI
inesmontani
PRO
1
1.2k
Transcript
Crypto Deixando sua aplicação mais segura nativamente
senior solutions architect_ quem sou eu_ /khaosdoctor @_staticvoid lsantos.dev @khaosdoctor
nindoo.ai
abcdevelopers.org cupom: LSANTOSABCDEV2019
Criptografia
Conjunto de técnicas para ofuscar a escrita e torná-la ininteligível
para quem não é autorizado
Ela existe há muito tempo
Muito tempo mesmo
None
Cifra de César T E X T O k =
3 W H A W R +k +k +k +k +k
Criptografia clássica - Puramente baseada em lógica - Se decifrada
perdia o sentido
Criptografia digital - Baseada em matemática - Varia para cada
tipo de entrada - Varia para cada tipo de dado - Dificuldade de decriptação - Facilidade de criação
Tipos de criptografia
Reversível É possível obter a mensagem original - AES -
RSA - 3DES (DES) - Diffie-Hellman - Base64 - Rot13
Irreversível Não é possível obter a mensagem original - SHA256
- SHA128 - MD5 - PBKD2F
O módulo Crypto
O que podemos fazer - Criação de certificados - Criptografia
assimétrica - Criptografia simétrica - Algoritmos autenticados - Algoritmos de iteração
Criptografia baseada em chaves
O que é uma chave? Criptografia reversível - Base da
criptografia utilizada - Evita descobrimento por brute force - Não é um dicionário - Torna a função reversível
Criptografia com chaves
Criptografia com chaves
Criptografia com chaves
Casos de uso - Modelo mais utilizado de criptografia reversível
- Armazenamento de informações confidenciais - Utilizado quando não precisamos compartilhar a senha
Criptografia autenticada
Criptografia autenticada
Vetores de inicialização Adicionando ainda mais segurança - Número de
uso único - Aleatório - Previne ataques de dicionário - Geralmente tem 16 bits
Criptografia autenticada
Criptografia autenticada
Casos de uso - Autenticação de usuários - Tokens de
validação - Assinatura simples de mensagens
Hashes
O que é hash Criptografia irreversível - Resultado de uma
função criptográfica de derivação - Comprimento fixo - Com ou sem chave - Difíceis de reverter - Volatilidade da saída - Criam assinaturas - Transforma grandes quantidades de dados em pequenas unidades de informação
Hash com chave (SHA)
Hash sem chave (MD5)
Casos de uso - Validação de blocos (blockchain) - Assinaturas
de mensagens - Validação de binários - Armazenamento de senhas
Criptografia iterativa
PBKD2F Criptografando a criptografia … Várias vezes - Aplica uma
criptografia irreversível várias vezes - Utiliza um Salt - Depende do algoritmo subsequente
None
Casos de uso - Todas as de um hash -
Mais seguro
Assinar mensagens
O que é uma assinatura Garantindo que está tudo certo
- Hash gerado a partir do conteúdo - Garante autenticidade - Tira proveito da natureza volátil dos hashes
JWT header assinatura payload
JWT - Na prática
Assinando mensagens
Assinando mensagens
Casos de uso - Validação de autenticidade - Validação de
integridade - Emails - Chaves - Mensagens - Criptomoedas
/khaosdoctor @_staticvoid lsantos.me @khaosdoctor Demos
referências_ - http://enigma.louisedade.co.uk/enigma.html - http://bit.ly/310srla - Como a enigma funciona
- https://lollyrock.com/posts/nodejs-encryption/ - https://www.geeksforgeeks.org/node-js-password-hashing-crypto-module/ - https://nodejs.org/api/crypto.html - https://www.tecmundo.com.br/seguranca/1896-o-que-e-ssl-.htm - https://pt.wikipedia.org/wiki/Criptografia - https://www.youtube.com/watch?v=_Eeg1LxVWa8 - https://en.wikipedia.org/wiki/Enigma_machine - https://pt.wikipedia.org/wiki/Fun%C3%A7%C3%A3o_hash - https://pt.wikipedia.org/wiki/Fun%C3%A7%C3%A3o_hash_criptogr%C3%A1fica - https://github.com/khaosdoctor/palestra-nodejs-crypto - https://github.com/auth0/node-jsonwebtoken
Feedbacks
/khaosdoctor @_staticvoid lsantos.dev @khaosdoctor obrigado_