실시간 추첨기

새 실시간 추첨 만들기

도움말

사용법

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

 

주의사항

  • 추첨 결과는 '등수' + '당첨자 번호'로 나오니, 미리 상품별 등수와 응모자 번호를 지정해주세요.

    ① 구글 설문지로 입력 받고, 구글 스프레드 시트를 만든뒤 미리 공유하는 방법을 추천합니다.

    ② 댓글을 스크린샷 찍고 번호를 매겨 추첨링크와 함께 공유하는 방법도 추천드립니다.

  • IP마다 10분당 생성개수 1회 제한이 있습니다.
  • 생성된 추첨은 약 28일간 보관되며, 보관 기간동안 결과확인 가능합니다.

 

기타 안내사항

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

     

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

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

    암호문은 임의로 조작하거나, 복호화 키 없이는 해독할 수 없습니다.

     

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

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

     

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

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

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

     

  • '로딩실패! 추점정보가 없습니다.' 메시지?

    추점정보는 약 28일간 보관됩니다.. ①보관 기한을 초과하였거나, ②서버 오류 또는 ③잘못된 링크일 가능성이 있습니다.

    서버 오류로 추정되면, 새 추첨을 만들어 보세요. (새 추첨 생성 불가하면 서버오류입니다.)

     

이 툴을 쉽게 설명하자면, 추첨자가 결과를 알면 랜덤이라고 해도 뽑는 사람이 여러번 시도해서 원하는 결과가 나올때까지 바꿀수도 있지만..

결과가 암호화 되어있다가.. 공개시점이 지나야지만 추첨자와 참여인원 모두 동일한 결과를 알 수 있고,
IP당 생성수 제한이 있기 때문에 보다 공정한 추첨이 가능합니다. (실시간 추첨과 동일한 공정성!)

또한, 서버에서는 아무 의미가 부여되지 않은 단순한 번호만 랜덤으로 즉시 뽑기 때문에 서버의 무결성 또한 보장됩니다.

 

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

암호화는 crypto-js(MIT License)의 4.0.0 버전을 이용합니다. (실제 사용하는 소스코드는 다음 주소에서 확인가능합니다. https://cdn.jsdelivr.net/npm/[email protected]/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();
return JSON.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;
}
}
if('pw' in window){
console.log(JSON.parse(JSON.parse(CryptoJS.AES.decrypt(roulette, pw, {format: CryptoJSAesJson}).toString(CryptoJS.enc.Utf8))));
}else{
console.log("결과 발표이전입니다.")
}

위 코드를 현재 페이지에서 개발자 도구의 콘솔에 입력하면 전역변수 {roulette}, {pw}로 부터 암호 해독 결과를 검증할 수 있습니다. (추첨결과가 나온 경우에만 pw가 발급됩니다.)

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

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

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