Random String Generator 자주 묻는 질문

Generate random alphanumeric strings

무작위 문자열을 안전하게 만드는 것은 무엇인가요?

안전한 무작위 문자열에는 세 가지 요소가 필요합니다: 암호학적으로 안전한 난수 생성(Math.random()이 아닌 crypto.getRandomValues() 또는 동등한 것 사용), 충분한 엔트로피(인증 토큰의 경우 최소 128비트) 및 적절한 처리(HTTPS를 통해 전송, 필요할 때 해시되어 저장). 예측할 수 없는 생성과 적절한 길이의 조합으로 추측 공격이 계산적으로 실행 불가능합니다.

무작위 문자열은 얼마나 길어야 하나요?

길이는 문자 집합과 필요한 엔트로피에 따라 다릅니다. 모든 인쇄 가능한 ASCII 문자를 사용하는 인증 토큰(94자, 문자당 6.55비트)의 경우 20자는 131비트의 엔트로피를 제공합니다. 매우 안전합니다. 영숫자만(62자, 문자당 5.95비트)의 경우 유사한 엔트로피를 위해 22자를 사용하세요. 세션 ID에는 최소 112-128비트가 필요합니다. 테스트 데이터는 보안이 문제가 되지 않으므로 더 짧은 문자열을 사용할 수 있습니다.

모호한 문자를 제외해야 하나요?

사람이 문자열을 읽거나 입력할 때 모호한 문자(0/O, 1/l/I)를 제외하세요. 확인 코드, 백업 코드 또는 수동으로 입력된 값의 경우 이러한 문자를 제외하면 사용자 오류가 방지됩니다. 사용자가 절대 보지 않는 순수하게 내부 토큰의 경우 최대 엔트로피를 위해 모든 문자를 포함하세요. 엔트로피 손실은 최소입니다. 문자당 약 0.12비트.

API 키에 어떤 문자 집합을 사용해야 하나요?

API 키의 경우 62자와 광범위한 호환성을 제공하는 영숫자(a-z, A-Z, 0-9)를 사용하세요. 이것은 이스케이프 없이 HTTP 헤더, JSON 및 대부분의 구성 파일에서 작동합니다. 광범위한 권한이 있는 장기 키의 경우 최소 32자(190비트의 엔트로피)를 목표로 하세요. 추가 엔트로피가 필요하고 이스케이프 복잡성을 처리할 수 있는 경우에만 특수 문자를 추가하세요.

이 생성기는 암호학적으로 안전한가요?

예, 우리의 생성기는 암호학적으로 안전한 난수 생성을 제공하는 Web Crypto API의 crypto.getRandomValues()를 사용합니다. 이것은 공격자가 예측할 수 없는 엔트로피 소스에서 시드된 운영 체제의 CSPRNG에 액세스합니다. 생성된 문자열은 인증 토큰 및 세션 ID와 같은 보안에 민감한 응용 프로그램에 적합합니다.

이러한 문자열을 데이터베이스 ID로 사용할 수 있나요?

예, 무작위 문자열은 데이터베이스 식별자로 잘 작동합니다. 열거 공격(리소스 액세스를 위한 ID 추측)을 방지하고 엔티티 수 또는 생성 순서에 대한 정보 유출을 피합니다. URL에 나타나는 ID에는 URL 안전 문자(영숫자 + 하이픈/밑줄)를 사용하세요. 충돌을 피하기 위해 충분한 길이를 보장하세요. 수백만 레코드의 경우 최소 16자(95비트). 인덱싱 성능을 고려하세요: 더 짧은 문자열은 더 적은 공간을 사용하고 더 빠르게 인덱싱됩니다.

도구 사용해보기

Generate random alphanumeric strings

Random String Generator