BCrypt āđāļāđāļāļāļąāļāļāđāļāļąāļāđāļŪāļāļĢāļŦāļąāļŠāļāđāļēāļāđāļĨāļ°āđāļĨāļāļĢāļēāļĢāļĩāļāļēāļĢāđāļāđāļēāļĢāļŦāļąāļŠāļāļĩāđāđāļāđāļāļąāļāļāļĒāđāļēāļāđāļāļĢāđāļŦāļĨāļēāļĒāđāļāļāļēāļĢāļāļąāļāļāļēāđāļāđāļāđāļāļāļāđāđāļāļ·āđāļāđāļŦāđāļĄāļąāđāļāđāļāđāļāļāļēāļĢāļāļąāļāđāļāđāļāļāļĩāđāļāļĨāļāļāļ āļąāļĒāđāļĨāļ°āļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļĢāļŦāļąāļŠāļāđāļēāļāļāļđāđāđāļāđ āļāļāļāđāļāļāļāļĢāļąāđāļāđāļĢāļāđāļāļĒ Niels Provos āđāļĨāļ° David MaziÃĻres āļŠāļģāļŦāļĢāļąāļāļĢāļ°āļāļāļāļāļīāļāļąāļāļīāļāļēāļĢ OpenBSD āđāļāļāļĩ 1999 āđāļĨāļ°āđāļāđāļĢāļąāļāļāļ§āļēāļĄāļāļīāļĒāļĄāļāļĒāđāļēāļāļĄāļēāļāđāļāļāļļāļĄāļāļāļāļēāļĢāļāļąāļāļāļēāļāļāļāļāđāđāļ§āļĢāđāđāļāļ·āđāļāļāļāļēāļāļāļļāļāļŠāļĄāļāļąāļāļīāļāđāļēāļāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļāļĩāđāđāļāđāļāđāļāļĢāđāļāđāļĨāļ°āļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļāđāļāļāļēāļĢāļāļĢāļąāļāļāļąāļ§āļāđāļēāļĄāđāļāļĨāļāļāļāļĢāđāļĄāļāđāļēāļāđ
āđāļāļāļĢāļīāļāļāļāļāļāļāļēāļĢāļāļąāļāļāļēāđāļāđāļāđāļāļāļāđ āļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļāļāļāļĢāļŦāļąāļŠāļāđāļēāļāļĄāļĩāļāļ§āļēāļĄāļŠāļģāļāļąāļāļāļĒāđāļēāļāļĒāļīāđāļ āļŦāļāļķāđāļāđāļāđāļŦāļāļļāļāļĨāļŦāļĨāļąāļāļāļĩāđāļāļĒāļđāđāđāļāļ·āđāļāļāļŦāļĨāļąāļāļāļēāļĢāđāļāđāļāļąāļāļāđāļāļąāļāđāļŪāļāļĢāļŦāļąāļŠāļāđāļēāļāđāļāđāļ BCrypt āļāļ·āļāļāļēāļĢāļāļāļāđāļāļāļāđāļāļĄāļđāļĨāļāļđāđāđāļāđāļāļĩāđāļĨāļ°āđāļāļĩāļĒāļāļāđāļāļāļāļēāļāļāļēāļĢāđāļāđāļēāļāļķāļāđāļāļĒāđāļĄāđāđāļāđāļĢāļąāļāļāļāļļāļāļēāļ āđāļĨāļ°āļāđāļāļāļāļąāļāļāļēāļĢāļĨāļ°āđāļĄāļīāļāļāđāļāļĄāļđāļĨāļāļĩāđāļāļēāļāđāļāļīāļāļāļķāđāļ BCrypt āđāļāđāļāļēāļĢāļāļŠāļĄāļāļŠāļēāļāļāļĩāđāđāļāđāļāđāļāļāļĨāļąāļāļĐāļāđāļāļāļāđāļāļāļāļīāļāđāļŪāļāđāļāļāļāļĢāļąāļāđāļāđ āļāļēāļĢāđāļāļĨāļ·āļ āđāļĨāļ°āļāļēāļĢāđāļŠāļĢāļīāļĄāļāļ§āļēāļĄāđāļāđāļāđāļāļĢāđāļāļāļĩāđāļŠāļģāļāļąāļ āđāļāļ·āđāļāļŠāļĢāđāļēāļāđāļŪāļāļāļĩāđāđāļāđāļāđāļāļĢāđāļāđāļĨāļ°āļāļĨāļāļāļ āļąāļĒ āđāļĨāļ°āļāđāļāļāļāļąāļāļāļēāļĢāđāļāļĄāļāļĩāđāļāļāļāļąāļāļāļąāļāļŦāļĢāļ·āļāļāļēāļĢāđāļāļĄāļāļĩāļāļēāļāļāļāļāļēāļāļļāļāļĢāļĄ
āļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļāđāļāļāļēāļĢāđāļŪāļāđāļāļāļāļĢāļąāļāđāļāļĨāļĩāđāļĒāļāđāļāđāļāļāļ BCrypt āļāđāļ§āļĒāđāļŦāđāļāļąāļāļāļąāļāļāļēāļŠāļēāļĄāļēāļĢāļāđāļāļīāđāļĄāļāđāļāļāļļāļāļāļēāļĢāļāļģāļāļ§āļāļāļāļāļāļąāļĨāļāļāļĢāļīāļāļķāļĄāđāļŪāļāļāļēāļĄāļāļ§āļēāļĄāļāđāļēāļ§āļŦāļāđāļēāļāļāļāļāļĨāļąāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨ āļāđāļ§āļĒāļāļēāļĢāļĢāļ§āļĄāļāļąāļāļāļąāļĒāļāļēāļĢāļāļģāļāļēāļ (āļŦāļĢāļ·āļāļāļĩāđāđāļĢāļĩāļĒāļāļ§āđāļēāļāļąāļāļāļąāļĒāļāđāļēāļāļāđāļāļāļļāļ) BCrypt āļāđāļ§āļĒāđāļŦāđāļŠāļēāļĄāļēāļĢāļāļāļĢāļąāļāļāļĢāļ°āļāļ§āļāļāļēāļĢāđāļŪāļāđāļāđāļāļĒāđāļēāļāļĨāļ°āđāļāļĩāļĒāļāđāļāļ·āđāļāļŠāļĢāđāļēāļāļŠāļĄāļāļļāļĨāļĢāļ°āļŦāļ§āđāļēāļāļāđāļāļāļģāļŦāļāļāļāđāļēāļāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāđāļĨāļ°āļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ āļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļāđāļāļāļēāļĢāļāļĢāļąāļāļāļąāļ§āļāļĩāđāļāļģāđāļŦāđāļĄāļąāđāļāđāļāđāļāđāļ§āđāļē BCrypt āļĒāļąāļāļāļāļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāđāļĄāđāļ§āđāļēāļāļĢāļąāļāļĒāļēāļāļĢāļŪāļēāļĢāđāļāđāļ§āļĢāđāļāļ°āļĄāļĩāļāļēāļĢāļāļĢāļąāļāļāļĢāļļāļāđāļĄāļ·āđāļāđāļ§āļĨāļēāļāđāļēāļāđāļ āđāļāļĒāđāļŦāđāļāļēāļĢāļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļĢāļ°āļāļąāļāļŠāļđāļāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļąāļāđāļāđāļāļĢāļŦāļąāļŠāļāđāļēāļāđāļāļĢāļ°āļĒāļ°āļĒāļēāļ§
āļāļļāļāļŠāļĄāļāļąāļāļīāļāđāļēāļāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļāļĩāđāļŠāļģāļāļąāļāļāļĩāļāļāļĢāļ°āļāļēāļĢāļŦāļāļķāđāļāļāļĩāđ BCrypt āļĄāļāļāđāļŦāđāļāđāļāļ·āļāļāļēāļĢāļāļģāđāļāļēāđāļāļĨāļ·āļāļĄāļēāđāļāđāđāļāļāļĢāļ°āļāļ§āļāļāļēāļĢāđāļŪāļ Salt āļāļ·āļāļāđāļāļĄāļđāļĨāđāļāļāļŠāļļāđāļĄāļāļĩāđāļĢāļ§āļĄāļāļąāļāļĢāļŦāļąāļŠāļāđāļēāļāļāļāļāļāļđāđāđāļāđāļāđāļāļāļāļĩāđāļāļ°āđāļŪāļ Salt āļāļĩāđāļŠāļĢāđāļēāļāļāļķāđāļāļāļ°āļāļđāļāļāļąāļāđāļāđāļāđāļ§āđāļāđāļēāļāđ āļĢāļŦāļąāļŠāļāđāļēāļāļāļĩāđāđāļŪāļ āđāļāļ·āđāļāđāļŦāđāļĄāļąāđāļāđāļāļ§āđāļēāđāļŪāļāļāļāļāļĢāļŦāļąāļŠāļāđāļēāļāđāļāđāļĨāļ°āļĢāļēāļĒāļāļēāļĢāđāļĄāđāļāđāļģāļāļąāļ āđāļĄāđāļ§āđāļēāļāļđāđāđāļāđāļŠāļāļāļāļāļāļ°āđāļĨāļ·āļāļāļĢāļŦāļąāļŠāļāđāļēāļāđāļāļĩāļĒāļ§āļāļąāļāļāđāļāļēāļĄ āđāļāļ§āļāļēāļāļāļāļīāļāļąāļāļīāļāļĩāđāļāđāļ§āļĒāļāđāļāļāļāļąāļāļāļēāļĢāđāļāļĄāļāļĩāļāļēāļĢāļēāļāļŠāļēāļĒāļĢāļļāđāļ āļāļķāđāļāļāļĒāļēāļĒāļēāļĄāļāļģāļāļ§āļāđāļŪāļāļĨāđāļ§āļāļŦāļāđāļēāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļŠāļĄāļĢāļŦāļąāļŠāļāđāļēāļāļāļĩāđāđāļāđāļāđāļāđāļāđāđāļāļĒāđāļāđāļāļēāļĢāļēāļāļāđāļēāđāļŪāļāļāļĩāđāļāļģāļāļ§āļāļĨāđāļ§āļāļŦāļāđāļē
BCrypt āđāļāđāļĢāļąāļāļāļēāļĢāļāļāļāđāļāļāđāļŦāđāđāļāđāļāļāļąāđāļ CPU-bound āđāļĨāļ° memory-bound āļāļģāđāļŦāđāļāļāļāļēāļāļāđāļāļāļēāļĢāđāļāļĄāļāļĩāđāļāļ brute-force āļāļĩāđāđāļāđāļŪāļēāļĢāđāļāđāļ§āļĢāđāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļāļāļāļēāļ āđāļāđāļ GPU āļŦāļĢāļ·āļāļŪāļēāļĢāđāļāđāļ§āļĢāđāđāļāļāļāļģāļŦāļāļāđāļāļ āđāļāđāļ FPGA āļŦāļĢāļ·āļāļāļīāļ ASIC āļāļāļāļāļēāļāļāļĩāđ BCrypt āļĒāļąāļāļāļāļāļēāļāļāđāļāļāļēāļĢāđāļāļĄāļāļĩāļāļēāļĄāđāļ§āļĨāļē āđāļāļĒāļāļĩāđāļāļđāđāđāļāļĄāļāļĩāļāļĒāļēāļĒāļēāļĄāļāļĢāļ°āđāļĄāļīāļāļāļĩāļĒāđāļāļēāļĢāđāļāđāļēāļĢāļŦāļąāļŠāļāļēāļĄāđāļ§āļĨāļēāļāļģāđāļāļīāļāļāļēāļĢāļāļāļāļāļąāļĨāļāļāļĢāļīāļāļķāļĄ
āļāļĩāđāđāļāļĨāļāļāļāļĢāđāļĄ no-codeAppMaster āđāļĢāļēāļĢāļąāļāļāļĢāļēāļāļāļķāļāļāļ§āļēāļĄāļŠāļģāļāļąāļāļāļāļāļāļēāļĢāļāđāļāļāļāļąāļāļāđāļ§āļĒāļĢāļŦāļąāļŠāļāđāļēāļ āđāļĨāļ°āļāļēāļĻāļąāļĒāļāļļāļāļĨāļąāļāļĐāļāļ°āļāđāļēāļāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļāļĩāđāđāļāđāļāđāļāļĢāđāļāļāļāļ BCrypt āđāļāļ·āđāļāļĢāļąāļāļĢāļāļāļāļēāļĢāļāļąāļāđāļāđāļāļĢāļŦāļąāļŠāļāđāļēāļāļāļāļāļāļđāđāđāļāđāļāļĒāđāļēāļāļāļĨāļāļāļ āļąāļĒ āđāļāļāļēāļāļ°āļāļĩāđāđāļāđāļāļŠāđāļ§āļāļŠāļģāļāļąāļāļāļāļāļāđāļāđāļŠāļāļ Backend-as-a-Service āļāļāļāđāļĢāļē BCrypt āļĄāļāļāļāļēāļĢāļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļāđāļ§āļĒāļĢāļŦāļąāļŠāļāđāļēāļāļāļĩāļāļāļąāđāļāļŦāļāļķāđāļāđāļŦāđāļāļąāļāļāļēāļĢāļŠāļ·āđāļāļŠāļēāļĢāļāļĩāđāđāļāđāļēāļĢāļŦāļąāļŠāļāļąāđāļāđāļāđāļāđāļāļāļēāļāļāļķāļāļāļĨāļēāļĒāļāļēāļāļāļĩāđāļŠāļĢāđāļēāļāđāļāļĒāđāļāļĨāļāļāļāļĢāđāļĄāļāļāļāđāļĢāļē
āļāļąāļ§āļāļĒāđāļēāļāđāļāđāļ āļāļēāļĢāļŠāļĢāđāļēāļāđāļāļāļāļĨāļīāđāļāļāļąāļāđāļŦāļĄāđāļāļĒāđāļēāļāļĢāļ§āļāđāļĢāđāļ§āļāļāļ AppMaster āđāļāđāļāļļāļāļĨāļąāļāļĐāļāļ°āđāļŪāļāđāļāļāļāļĢāļąāļāđāļāđāļāļāļ BCrypt āđāļāļ·āđāļāđāļŦāđāļĄāļĩāļ§āļīāļāļĩāļāļĩāđāļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāđāļāļāļēāļĢāđāļāļīāđāļĄāļāļąāļāļāļąāļĒāļāļēāļĢāļāļģāļāļēāļāđāļĄāļ·āđāļāđāļ§āļĨāļēāļāđāļēāļāđāļ āđāļāļ·āđāļāļāļāļēāļāļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļāđāļāļāļēāļĢāļāļģāļāļ§āļāļĄāļĩāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļ āļāļķāđāļāļŦāļĄāļēāļĒāļāļ§āļēāļĄāļ§āđāļēāļāļļāļāļāļĢāļąāđāļāļāļĩāđāļĄāļĩāļāļēāļĢāļŠāļĢāđāļēāļāđāļāļāļāļĨāļīāđāļāļāļąāļāđāļŦāļĄāđ āļāļąāļāļāļąāļĒāļāļēāļĢāļāļģāļāļēāļāļŠāļēāļĄāļēāļĢāļāļāļąāļāđāļāļāđāļāđ āļāļąāļāļāļąāđāļāļāļķāļāđāļāđāļāļāļēāļĢāļāđāļāļāļāļąāļāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļāļāļāđāļāļāļāļĨāļīāđāļāļāļąāļāļāļĩāđāļŠāļĢāđāļēāļāļāļķāđāļāđāļāļāļāļēāļāļ
āđāļāļĒāļŠāļĢāļļāļ BCrypt āđāļāđāļāļāļąāļāļāđāļāļąāļāđāļŪāļāļĢāļŦāļąāļŠāļāđāļēāļāļāļĩāđāđāļāđāļĢāļąāļāļāļēāļĢāļĒāļāļĄāļĢāļąāļāļāļĒāđāļēāļāļāļ§āđāļēāļāļāļ§āļēāļāđāļĨāļ°āļĄāļĩāļāļ§āļēāļĄāļāđāļēāđāļāļ·āđāļāļāļ·āļāļŠāļđāļāđāļāļāļāļāđāļāļāļāļāļāļāļēāļĢāļāļąāļāļāļēāđāļāđāļāđāļāļāļāđ āļāļļāļāļŠāļĄāļāļąāļāļīāļāļąāđāļāļŠāļđāļ āđāļāđāļ āļāļēāļĢāđāļŪāļāđāļāļāļāļĢāļąāļāđāļāđ āļāļēāļĢāđāļāļĨāļ·āļ āđāļĨāļ°āļāļēāļĢāļāļģāđāļāļīāļāļāļēāļĢāļāļĩāđāļāļđāļāļāļąāļāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģ āļāļģāđāļŦāđāđāļāđāļāļāļāļāđāļāļĢāļ°āļāļāļāļŠāļģāļāļąāļāđāļāđāļāļĢāļĄāđāļ§āļīāļĢāđāļāđāļāđāļāđāļāļāļāđāđāļĨāļ°āđāļāļāļāļĨāļīāđāļāļāļąāļāļĢāđāļ§āļĄāļŠāļĄāļąāļĒ āļāđāļ§āļĒāļāļēāļĢāļĢāļ§āļĄ BCrypt āđāļāđāļēāļāļąāļāđāļ§āļīāļĢāđāļāđāļāļĨāļ§āđāļāļēāļĢāļāļąāļāļāļēāļĢāļĢāļŦāļąāļŠāļāđāļēāļāļāļāđāļāļĨāļāļāļāļĢāđāļĄ AppMaster āđāļĢāļēāļĄāļļāđāļāļĄāļąāđāļāļāļĩāđāļāļ°āļāļģāđāļŠāļāļāđāļāļĨāļđāļāļąāļāđāļāđāļāđāļāļāļāđāļāļĩāđāļāļĨāļāļāļ āļąāļĒ āđāļāļ·āđāļāļāļ·āļāđāļāđ āđāļĨāļ°āļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļŠāļģāļŦāļĢāļąāļāļāļļāļĢāļāļīāļāļāļļāļāļāļāļēāļ āļāđāļ§āļĒāļāļĢāļ°āļ§āļąāļāļīāļāļĩāđāđāļāđāļĢāļąāļāļāļēāļĢāļāļīāļŠāļđāļāļāđāđāļĨāđāļ§āļāļāļ BCrypt āđāļāļāļēāļĢāļĢāļąāļāļĢāļāļāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļāļāļāļĢāļŦāļąāļŠāļāđāļēāļ āļāļđāđāđāļāđāļŠāļēāļĄāļēāļĢāļāđāļ§āđāļ§āļēāļāđāļāđāļāļĨāļāļāļāļĢāđāļĄāļāļĩāđāđāļāđāļāđāļāļĢāđāļ āļāļĢāļąāļāļāļāļēāļāđāļāđ āđāļĨāļ°āļĢāļāļāļĢāļąāļāļāļāļēāļāļāļāļāļ AppMaster āđāļāļ·āđāļāļāļāļāļŠāļāļāļāļāļ§āļēāļĄāļāđāļāļāļāļēāļĢāđāļāļāļēāļĢāļāļąāļāļāļēāđāļāđāļāđāļāļāļāđāļāļāļāļāļ§āļāđāļāļē