HTML/CSS/JS 팁

웹 문서 암호화 스크립트

2004.07.20 15:43

미친개 조회 수:10385



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

입력받은 소스를 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>
제목 글쓴이 날짜
SP2 팝업차단 무시하고 팝업띠우기?! [8] 오길호 2005.07.23
파일 업로드 버튼 이미지로 사용하기 [1] 행복한고니 2005.06.29
마우스 오른쪽버튼 금지시키기스크립트 [5] 박시현 2005.06.26
링크 점선 처리 onfocus=blur() [5] woosh 2005.06.06
상태 표시줄 감지 (URL 가리고 내용 표시) 업그레이드 소스 [2] ArⓒH 2005.05.30
팝업창을 내용에 맞게 크기 자동조정하기 [2] 김경수 2005.04.23
타켓으로 페이지 이동하는 스크립트 [2] 로크 2005.04.16
풍선도움말 스크립트 [3] 행복한고니 2005.04.11
플래쉬 갤러리 비슷한 자바스크립 갤러리 [13] monozzang 2005.04.04
플래시 칼라피커 두번째 버전 [1] 행복한고니 2005.03.16
테이블선(지정위치)을 따라 이동하는 top [3] sharim 2005.03.14
마우스커서 움직임으로 이미지목록 스크롤 [1] monozzang 2005.03.13
브라우저를 동적으로 부드럽게 리사이즈 하는 소스 [4] monozzang 2005.03.06
가로 세로가 호환되는 메뉴 [3] 이영준 2005.03.02
주소자동으로 이동 시키기(포워딩) [8] 네츠키 2005.02.22
홈피 만들때 자주 사용되는 메타태그 모음 [18] 김태영 2005.02.20
상위 셀렉트박스 값 변경시 하위셀렉트박스(다수)제어하기. [1] Xian 2005.02.19
뒤죽박죽어구 찾아내기 [6] 미친개 2005.02.14
홈페이지index경로 이외의 하위 경로 차단 하는 방법 [펌] [10] 프란시스 2005.02.05
허접한 메일 폼 검사 하기 스크립트입니다.. [1] Ansi™ 2005.02.06