연암공과대학교 · 2026 해커톤 팀 추첨 — 결과 검증
← 추첨 페이지
공정성 검증 원리

추첨에 사용된 시드를 입력하면 동일한 결정론적 알고리즘으로 팀 배정을 완전히 재현합니다.
같은 시드 → 같은 해시 → 같은 정렬 순서 → 항상 동일한 결과가 보장됩니다.

// 조작 방지용 고정 salt — 모든 참가자에 공통 적용
EVENT_SALT = "연암공대2026해커톤"
1
해시 계산 — 팀원 29명 + 팀장 7명 각각
hash(p) = SHA-256( EVENT_SALT + seed + p.name + p.id )
→ 256-bit 다이제스트를 64자리 16진수 문자열로 인코딩
→ WebCrypto API: crypto.subtle.digest('SHA-256', UTF-8(input))
2
팀원·팀장 각각 해시 오름차순 정렬
members.sort((a, b) => a.hash.localeCompare(b.hash))
leaders.sort((a, b) => a.hash.localeCompare(b.hash))
→ 16진수 문자열 사전순 = SHA-256 값의 수치 오름차순과 동일
3
라운드로빈으로 7팀에 팀원 순차 배정
// 정렬된 팀원을 팀 0→1→…→6→0→1→… 순서로 반복 분배
sorted_members.forEach((m, i) => teams[i % 7].push(m))
// 팀장은 정렬 인덱스 순서대로 팀 1~7에 매핑
🔒
결정론적 보장crypto.subtle.digest('SHA-256', ...)은 동일 입력에 항상 동일 출력을 냅니다. 따라서 같은 seed를 입력하면 해시 값·정렬 순서·팀 배정이 완전히 재현됩니다. 브라우저 종류·운영체제·실행 시각과 무관하게 동일합니다.