[
  {
    "format": "crypt() DES",
    "prefix": "none",
    "salt": "12 bits (2 chars.)",
    "computation cost": "25 DES rounds, password truncated to 8 chars.",
    "GPU/ASIC resistance": "None",
    "server compatibility": "Historical only",
    "introduced": "Late 1970s",
    "verdict": "Obsolete"
  },
  {
    "format": "SHA-1 {SHA}",
    "prefix": "{SHA}",
    "salt": "None",
    "computation cost": "1 iteration",
    "GPU/ASIC resistance": "None",
    "server compatibility": "Apache, nginx",
    "introduced": "1990s",
    "verdict": "Avoid"
  },
  {
    "format": "APR1-MD5",
    "prefix": "$apr1$",
    "salt": "8 chars.",
    "computation cost": "1,000 MD5 iterations",
    "GPU/ASIC resistance": "Low",
    "server compatibility": "Apache, nginx, Traefik",
    "introduced": "Apache 1.3, 1998",
    "verdict": "Maximum compatibility"
  },
  {
    "format": "bcrypt",
    "prefix": "$2y$",
    "salt": "128 bits",
    "computation cost": "2^N rounds, adjustable",
    "GPU/ASIC resistance": "High",
    "server compatibility": "Apache 2.4+, recent nginx, Traefik, Caddy",
    "introduced": "1999 (USENIX)",
    "verdict": "Recommended"
  }
]