HTML/CSS/JS 팁

웹 문서 암호화 스크립트

2004.07.20 15:43

미친개 조회 수:10372



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

입력받은 소스를 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>
제목 글쓴이 날짜
[HTML 초보자] 마퀴태그가 한번 반복 후 화면 끝에서 정지 ZipShin 2002.11.08
[HTML 초보자] 글자가 좌우 왕복하게 만들기. ZipShin 2002.11.14
〔Tale〕테일이랑 같이 글상자 이쁘게 만들어요 [1] TaleB˚ 2002.11.17
[HTML 초보자] 글자가 움직이는 스크롤 지연값 -_- ZipShin 2002.11.22
[HTML 초보자] 움직이는 글자반복횟수를 정하자... ZipShin 2002.11.22
[HTML 초보자] 글자움직이는 마퀴태그의 응용(Last) [3] ZipShin 2002.11.26
흐르는 폼 내용 출력 ㅡ,.ㅡγ [9] ☆밥동자γ 2002.11.30
허접강의 -_-; 소스보기 금지 푸는방법들 [21] 허진규 2002.12.05
[HTML 초보자]iframe대신 사용할수있는 오브젝트-1 [8] ZipShin 2002.12.06
[HTML 초보자]iframe대신 사용할수있는 오브젝트-2 [12] ZipShin 2002.12.06
[프레임셋] 1024*768.. 800*600 에서도 화면 제대로 보이기... [5] hooniv 2002.12.10
[HTML 초보자]동영상을 출력하자-1 [6] ZipShin 2002.12.11
[HTML 초보자]동영상을 출력하자-2 [3] ZipShin 2002.12.12
[HTML 초보자]동영상을 출력하자-3(높이와 넓이) ZipShin 2002.12.16
[HTML 초보자]동영상을 출력하자-4 ZipShin 2002.12.17
[HTML 기초] 1. 서식 관련 태그 뽀유♡ 2002.12.17
[HTML 초보자]동영상을 출력하자-5 ZipShin 2002.12.18
[HTML 초보자]동영상을 출력하자-6(Object) [1] ZipShin 2002.12.19
필드셋 응용;;; teslaMINT 2002.12.21
[HTML 초보자] 테이블 태그(보충1) [3] ZipShin 2002.12.21