100% 브라우저 메모리 연산 • 서버 로그 수집 제로 • 즉각적인 실행
Curious Techie개발자 툴박스
Cryptography & CiphersNIST SP 800-132 / RFC 8018Verified Terminology

Cryptographic Salt

핵심 요약 답변

A unique, cryptographically random sequence of bytes concatenated with a password or credential prior to hashing to ensure that identical passwords produce completely different hash digests.

Entity Relationships (GEO Conceptual Hierarchy)

Taxonomy Model
Relational Knowledge Graph Sequence
Cryptographic Salt→
password security defense→
cryptographically random byte generation→
input concatenation→
rainbow table invalidation→
unique per-user digest storage
Cryptographic Salt
•>password security defense
•>cryptographically random byte generation
•>input concatenation
•>rainbow table invalidation
•>unique per-user digest storage

Technical Explanation & Operational Mechanics

If a database hashes passwords without salts, two users with the password "Password123" will have identical hashes in the database. Furthermore, attackers can precompute trillions of common password hashes into lookup tables (known as Rainbow Tables) to reverse compromised hashes in milliseconds. A salt neutralizes this attack vector by guaranteeing global uniqueness. Even if millions of users share the same password, each user has a unique random salt, forcing attackers to compute brute-force calculations individually for every single account.

Technical Example & Practical Implementation

Salted Password Hashing Flow (PBKDF2 / Argon2)

Generating random bytes and storing salt alongside hash digest

// 1. Generate 16 bytes of cryptographically secure random salt
const salt = crypto.getRandomValues(new Uint8Array(16));

// 2. Hash password combined with unique salt using slow KDF (Argon2 / PBKDF2)
const derivedKey = await crypto.subtle.deriveKey(
  {
    name: 'PBKDF2',
    salt: salt,
    iterations: 600000,
    hash: 'SHA-256'
  },
  passwordKey,
  { name: 'AES-GCM', length: 256 },
  true,
  ['encrypt']
);

// 3. Stored in DB: $pbkdf2$iterations$salt$hashDigest