개발 중 임시 비밀번호나 salt가 필요할 때가 있습니다.
예를 들면:
- 테스트 계정 비밀번호
- demo secret
- DB seed data
- password hash salt
- 문서 예제용 random string
이걸 매번 손으로 만들면 약한 값이 되기 쉽습니다.
그래서 만든 도구가 Secure Password and Salt Generator입니다.
어떤 도구인가
이 도구는 브라우저의 Web Crypto API를 사용해 random 값을 생성합니다.
주요 기능은 이렇습니다.
- password 생성
- salt 생성
- password length 조정
- character group 선택
- ambiguous character 제외
- required group 옵션
- salt byte length 조정
- Hex, Base64URL, Base64 출력
- entropy estimate 표시
생성값은 서버로 전송하지 않습니다.
기본 사용법
- password length를 정합니다.
- 사용할 character group을 선택합니다.
- 필요하면 ambiguous character 제외 옵션을 켭니다.
- salt byte length와 format을 선택합니다.
Generate버튼을 누릅니다.- 필요한 값을
Copy로 복사합니다.
일반적으로 길이가 길수록 entropy가 커집니다.
짧고 복잡한 비밀번호보다, 충분히 긴 비밀번호가 더 다루기 좋을 때가 많습니다.
salt는 비밀번호가 아니다
salt는 보통 password hash 옆에 저장되는 random 값입니다.
secret처럼 숨겨야 하는 값이라기보다, 같은 비밀번호가 같은 hash로 반복되지 않도록 섞어주는 값입니다.
그래서 salt는:
- 충분히 random해야 하고
- 사용자마다 달라야 하고
- 재사용하지 않는 편이 좋습니다
이 도구에서는 salt byte length를 조정하고 Hex/Base64 형식으로 뽑을 수 있습니다.
ambiguous character 옵션
임시 비밀번호를 사람이 직접 읽거나 전달해야 하면 헷갈리는 문자가 문제가 됩니다.
예를 들어:
0 O o
1 l I
같은 문자는 복사해서 쓰면 괜찮지만, 사람이 보고 입력해야 하는 환경에서는 실수 가능성이 큽니다.
이럴 때 ambiguous character 제외 옵션을 켜면 운영 편의성이 좋아집니다.
주의할 점
이 도구는 값을 생성해줄 뿐, password storage 정책을 대신하지 않습니다.
실제 서비스에서는:
- Argon2, bcrypt, scrypt 같은 password hashing
- 충분한 cost parameter
- 사용자별 unique salt
- rate limit
- MFA
같은 정책을 같이 봐야 합니다.
또한 생성한 secret을 어디에 저장하고 공유하는지도 중요합니다.
한 줄 요약
Secure Password and Salt Generator는 Web Crypto API로 password와 salt를 브라우저에서 생성하고 entropy와 출력 형식을 함께 확인하는 보안 보조 도구입니다.