웹마스터 팁

웹 문서 암호화 스크립트

2004.07.20 15:43

미친개 조회 수:10616



예전에 만들어놓았던 문서인코딩 소스입니다.
스트링 객체에 대한 이해가 좀 있다면 쉽게 만들수 있는 소스죠.

입력받은 소스를 escape() 시킨다음에 각각의 모든 문자들의 아스키값을
정해준 만큼 더해줍니다.
그리고 여기에 디코딩 함수를 포함한 스크립트를 덧붙여 출력해주죠.

디코딩의 원리는 위의 역순이구요.


예전에 만들었을땐 입력받은 문자열의 아스키값을 더해 나온값이
줄바꿈에 해당하는 문자열일때 에러가 나는 오류가 있었는데
수정 했습니다.

스크립트에 관한 약간의 이해가 있다면 이 소스의 치명적인 약점을
쉽게 찾을수 있을겁니다.


미리 보기 : http://allzza.net/xxx/aboard.php?id=pds
참조 : http://www.tagmania.net/zboard/zboard.php?id=jschool&page=8&select_arrange=headnum&desc=desc&sn=off&ss=on&sc=on&divpage=1



<html>
<head>
<title>
String 와 form 객체를 이용한 암호화 소스
</title>

<script>

/////////////////////////
// 소스 : 미친개
// 이멜 : webmaster@allzza.net
// 멜룽----ㅡ,.ㅡ
/////////////////////////////



msg = false;
dum = 1;
        //-- dum 은 1 에서 5 까지 취향에 맞게 선택하세요
        //-- 이 숫자가 0 이면 암호화가 되지 않습니다.
        //-- 1에서 5정도가 적당합니다..
              
function encode()  {
        myObj = document.myform.aaa;
        str = escape(myObj.value);
        end_num = str.length - 1;
        encode_str = '';
  
        befstr =   '<html><head><title></title><sc'
                 + 'ript>str2 = "'
        aftstr =   '";eh = "";for(k=0;k<str2.length;k++)'
                 + '{eh+=String.fromCharCode(str2.charCodeAt(k) - ' + dum + ');}'
                 + 'document.write(unescape(eh));</scr'
                 + 'ipt><body></body></html>'



        for(i=0;i<=end_num;i++)   {
           //if(str.charCodeAt(i)==9) i++;
           key = 1*str.charCodeAt(i) + dum;
           encode_str += String.fromCharCode(key);
           }
        document.myform.aaa.value = befstr + encode_str + aftstr;
        }


function getstr(value)   {

   var cs = document.myform.aaa.value;
   var str_num = cs.indexOf(value);    
   return str_num;          
   }
    

function decode()   {

   myObj = document.myform.aaa;
   str = myObj.value;
   //dum = 40000;
   //-- 위에 덤이랑 같은 숫자로...^..^
   decode_str = '';
   str_start = getstr('str2 = "') + 'str2 = "'.length;
   str_end = getstr('";eh');
  for(i=str_start;i<str_end;i++)  {
      key = 1*str.charCodeAt(i) - dum;
      decode_str += String.fromCharCode(key);
      }
  document.myform.aaa.value = unescape(decode_str);
}

function view_source()   {
  abab = prompt('페이지의 주소를 써 넣으세요','http://');
  window.location = 'view-source:' + abab;
  }
</script>


</head>
<body bgcolor=#aaaaaa>

<form name=myform>
<table border=1>
<tr><td>
<textarea name=aaa ROWS=15 COLS=50></textarea>
</td>
</tr>
<tr>
<td align=center>
<input type=button name=ccc value='인코딩' onclick='encode();'>
<input type=button          value='디코딩' onclick='decode();'>
<input type=reset name=ddd value='다시'>
<input type=button value='소스불러오기' onclick='view_source();'>
</td></tr>

</table>
</form>


      



</body>
</html>
제목 글쓴이 날짜 조회 수
회원가입후 24시간 이후 글작성 가능하기 [2] 샵사이드 2015.02.09 447
인증메일을 gmail의 smtp로 보내기 [30] showjean 2012.07.17 18135
XE 비회원이 귀찮게 이메일 홈페이지 입력 안하도록 하기 [7] jhrun 2012.12.16 7103
제로보드4에서 xe로 이전시 갤러리 게시판 이미지 깨어지는 현상 해결방법 [2] 최르토스 2012.04.22 5853
스케치북5 1.7.0 버전 모바일 게시판 스킨 댓글수 안나올때 [2] 키스투엑스이 2014.10.22 1072
에디터 "입력창 크기 자동조절" 체크를 기본으로 하기 [7] 투씨 2013.11.24 2450
제가 쓰는 자동링크 (스킨수정) [4] okiz 2014.04.29 2489
사용자 매뉴에 회원정보와 포인트설정 바로가기 기능 삽입 [1] file 간장게장같은남자 2015.01.23 465
타임라인게시판의 읽기화면의 제목에 원게시판명 표시 - 스케치북5스킨 [1] 몽실아빠 2015.01.27 699
사용자정의 중 전화번호 형식을 쓰는경우 - 사이에 한칸씩 여백이 생기는 걸 없애는방법 [1] sejin7940 2015.01.23 2447
xe 폰갭 제작시 admob 광고 글쓰기 방해 하지 않으려면 한꼬마 2015.01.26 414
부트스트랩 관련 버튼안에 체크박스 돼지코구뇽 2015.01.25 200
DB LOCK으로 인한 사이트 마비와 사례, 조치 [2] onTrust 2015.01.24 572
제로보드 DTREE 메뉴 적용하기 ( 카테고리 선택기 흉내 냈습니다.) [5] file 조성우371 2009.01.17 11083
게시판에서 태그 기준으로 검색하면 임시저장글들도 노출되는 버그 수정 sejin7940 2015.01.23 434
[리눅스] 속도향상 팁. nginx를 리버스프록시로 써봅시다. [5] choco@_@ 2013.07.11 7061
게시판 글 엑셀로 출력하기(확장변수 포함) [6] 한이73 2014.07.17 3053
문서권한 지정 애드온 1.7에서 동작하게 [3] socialskyo 2015.01.17 537
kin 모듈 게시물 -> board로 게시물 옮기기 편법 file 꾸링 2015.01.20 350
한글지원하는 글자수 자르기 함수 [3] pezex 2014.08.11 1886

단축키 (Shortcut)