HTML/CSS/JS 팁

웹 문서 암호화 스크립트

2004.07.20 15:43

미친개 조회 수:10596



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

입력받은 소스를 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>
제목 글쓴이 날짜
[동영상강좌] 제9회차 - 메시지창(문서열때,닫을때,클릭시) 아이티스터디 2006.02.02
[동영상강좌] 제8회차 - 뒤로가기/앞으로가기 만들기 [1] 아이티스터디 2006.02.02
[동영상강좌] 제7회차 - 롤오버기능 만들기 아이티스터디 2006.02.02
[동영상강좌] 제6회차 - 시간별로 배경이 바뀌게 만드는방법 아이티스터디 2006.02.02
[동영상강좌] 제5회차 - 풀스크린으로 링크거는방법 아이티스터디 2006.02.02
[동영상강좌] 제4회차 - 풀다운메뉴 만드는방법 아이티스터디 2006.02.02
[동영상강좌] 제3회차 - 자동으로 창열고닫기 아이티스터디 2006.02.02
[동영상강좌] 제2회차 - 팝업창 띄우기 [1] 아이티스터디 2006.02.02
[동영상강좌] 제1회차 - 랜덤광고 만들기 [1] 아이티스터디 2006.02.02
새창으로 페이지열기에 대한... [2] 나만의길 2006.01.04
홈페이지 만드실때 방문자의 해상도가 걱정 되신다면 [5] 한용 2005.11.11
주소창에 경로감추기 [5] ☆쭈야☆ 2005.10.29
임의로 전체에서 몇개의 배너만 출력하기(오류 수정 ㅜ,.ㅜ) ColonD 2005.10.20
2005/10/16 21:15 pm 형식으로 출력되는 시계 [5] 웹-하루 2005.10.18
클릭으로 배경색 바꾸는 스크립트(수정) [1] ColonD 2005.10.16
배경색 랜덤으로 바꾸는 스크립트 [1] ColonD 2005.10.15
뉴스티커 [4] beMax 2005.08.26
Rain# 머문시간 나타내기 [상태창] Rain 2005.08.14
자바스크립트 음악목록 랜덤 재생하기 만능천사 2005.08.14
미디어 플레이어? 난 곰플레이어야! [9] 송재영 2005.07.24