iwantcoding
.com
Tutorials
▾
Web Frontend
HTML
CSS
HTML5
CSS3
JavaScript
TypeScript
Sass
React
Vue
Svelte
Tailwind
Backend
Python
PHP
Node.js
Java
Go
Rust
Ruby
C#
Databases
SQL
MySQL
PostgreSQL
MongoDB
Firebase
GraphQL
Redis
Mobile
React Native
Flutter
Swift
Kotlin
Ionic
Cloud & DevOps
AWS
Docker
Kubernetes
CI/CD
Linux/Bash
AI & Data
NumPy/Pandas
Machine Learning
TensorFlow
PyTorch
LangChain
RAG
Cybersecurity
XSS
SQL Injection
CSRF
OWASP Top 10
Cryptography
Ethical Hacking
Tools
Git
DSA
Design Patterns
RegEx
VS Code
Specialty
Game Dev
WordPress
Web3/Solidity
Three.js
Capstone
Enterprise Architecture
HTML
CSS
JAVASCRIPT
SQL
PYTHON
PHP
TYPESCRIPT
REACT
NODEJS
MONGODB
DOCKER
GIT
TAILWIND
GRAPHQL
LINUX-BASH
AWS
KUBERNETES
VUE
SVELTE
SASS
THREEJS
GO
RUST
JAVA
RUBY
CSHARP
WORDPRESS
POSTGRESQL
MYSQL
REDIS
FIREBASE
REACT-NATIVE
FLUTTER
SWIFT
KOTLIN
IONIC
CICD
NUMPY-PANDAS
ML
TENSORFLOW
PYTORCH
LANGCHAIN
XSS
SQLI
CSRF
OWASP
CRYPTO
DSA
DESIGN-PATTERNS
REGEX
VSCODE
GAMEDEV
WEB3
ENTERPRISE
CAPSTONE
ETHICAL-HACKING
🔥 Daily
👥 Rooms
🏆 Top
Log in
Sign up
AI ✨
Cryptography Tutorial
BOSS QUIZ
10 questions · 5 minutes · pass at 70% to clear the track.
05:00
Start
Q1.
A CSPRNG is required for…
from Intro
Animation timing
Security-sensitive randomness (tokens, IVs, keys)
UI ripple
Logging
Q2.
In the browser, use…
from Random Numbers (CSPRNG)
Math.random()
crypto.getRandomValues()
Date.now()
performance.now()
Q3.
Comparing secret strings with == can leak…
from Constant-time Comparisons
Memory addresses
Bits via timing side channels
CPU cache lines
Disk size
Q4.
In Node, secure random bytes come from…
from Random Numbers (CSPRNG)
Math.random()
crypto.randomBytes()
Date.now()
process.hrtime()
Q5.
Most real-world crypto bugs are…
from Intro
Broken algorithms
Misuse of safe primitives
CPU bugs
Bad random in WebAssembly
Q6.
Passwords should be hashed with…
from Password Hashing (argon2/bcrypt)
SHA-256 directly
A slow / memory-hard KDF — argon2id, bcrypt, scrypt
AES
Base64
Q7.
A practical rule is…
from Intro
Roll your own when in doubt
Use vetted libraries (libsodium, WebCrypto, …)
Never use OSS
Write in C only
Q8.
In Python, use…
from Random Numbers (CSPRNG)
random
secrets
time
uuid.uuid1
Q9.
Hashing first is…
from Constant-time Comparisons
Always sufficient
Useful but does not replace constant-time compare on the digest
Worse than ==
Required by GDPR
Q10.
The fix is…
from Constant-time Comparisons
Hash first then compare
A constant-time compare (timingSafeEqual / hmac.compare_digest)
Reverse one of them
XOR the strings
Submit
Back to Cryptography Tutorial
🏆
Achievement unlocked!