실시간 추첨기

도구 설정 + 실행

도움말

사용법

  1. '추첨 시각'을 설정합니다. (최소 10분 후)
  2. '당첨자 수'를 설정합니다. (최소 1명 ~ 최대 500명)
  3. '응모자 수'을 설정합니다. (최소 2명 이상)
  4. 중복 당첨 제외여부를 설정합니다.
  5. 생성 버튼을 누르고, 생성된 주소를 복사하여 공유합니다.

 

주의사항

  • 추첨 결과는 '등수' + '당첨자 번호'로 나오니, 미리 상품별 등수와 응모자 번호를 지정해주세요.
  • IP마다 10분당 생성개수 1회 제한이 있습니다.
  • 생성된 추첨은 약 28일간 보관되며, 보관 기간동안 결과확인 가능합니다.

 

기타 안내사항

  • 라이브로 추첨이 불가한 경우(커뮤니티/카페 등)에 보다 공정한 추첨을 위해 만들어졌습니다.


  • 실시간 추첨 룰렛 생성과 동시에 AES256방식으로 암호화된 결과가 생성됩니다.

    * AES256 : '미국 정부', '금융기관'에서도 공식적으로 사용하는 안전한 암호화 방식.

    암호문을 임의로 만들어내거나, 해독할 수 없습니다.


  • 암호화된 결과는 '당첨자 추첨 시각 이후'부터 확인 가능합니다.

    * 해독키가 제공되어 자동으로 결과가 공개됨.


  • 생성과 동시에 서버에서 추첨하여 결과를 만들고, 모두가 동일한 암호화된 결과를 확인하기 때문에, 결과 생성후 임의조작은 불가합니다.

    추첨 시각 이전에 대부분의 참여자가 볼 수 있도록 여유롭게 시간을 잡고 링크를 공유해주세요!

    Cloudflare의 인프라를 활용(정적 캐싱)하여 동시접속자 수십만명도 처리 가능하도록 설계되어 있으므로, 이용자 수 걱정없이 이용하셔도 됩니다.


쉽게 설명하자면, 추첨자가 결과를 알면 여러번 시도해서 원하는대로 바꿀수도 있지만..

이 툴은 결과가 암호화 되어있다가.. 공개시점에 다같이 결과를 알 수 있고, IP당 생성수 제한이 있기 때문에 보다 공정한 추첨이 가능합니다.

 

결과 검증방법 (개발자용)

암호화는 crypto-js(MIT License)의 4.0.0 버전을 이용합니다. (사용하는 소스코드는 다음 주소에서 확인가능합니다. https://cdn.jsdelivr.net/npm/crypto-js@4.0.0/crypto-js.min.js)

var CryptoJSAesJson = {
stringify: function (cipherParams) {
var j = {ct: cipherParams.ciphertext.toString(CryptoJS.enc.Base64)};
j.iv = cipherParams.iv.toString();
j.s = cipherParams.salt.toString();
returnJSON.stringify(j);
},
parse: function (jsonStr) {
var j = JSON.parse(jsonStr);
var cipherParams = CryptoJS.lib.CipherParams.create({ciphertext: CryptoJS.enc.Base64.parse(j.ct)});
cipherParams.iv = CryptoJS.enc.Hex.parse(j.iv)
cipherParams.salt = CryptoJS.enc.Hex.parse(j.s)
return cipherParams;
}
}
console.log(JSON.parse(JSON.parse(CryptoJS.AES.decrypt(roulette, pw, {format: CryptoJSAesJson}).toString(CryptoJS.enc.Utf8))));

위 코드를 개발자 도구의 콘솔에 입력하면 전역변수 {roulette}, {pw}로 부터 암호 해독 결과를 검증할 수 있습니다. (추첨이 진행된 경우에만 pw가 발급되니 확인가능)

전역변수 {roulette}에는 생성된 암호문, 솔트값, IV값이 있으며..

전역변수 {pw}에는 해독키가 들어가 있습니다.

오류제보 / 기능제안   글 작성하러가기