메뉴 건너뛰기

XE : Xpress Engine




UI 팁

웹 문서 암호화 스크립트

2004.07.20 15:43

미친개 조회 수:10193



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

입력받은 소스를 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>
번호 제목 글쓴이 날짜 조회 수
968 드래그금지 태그 풀어보기 [2] 인테리어뱅크 2006.04.10 8613
967 페이지 자동 이동 태그입니다. 인테리어뱅크 2006.04.10 10639
966 오른쪽버튼 금지 및 드래그금지 태그 [3] 인테리어뱅크 2006.04.10 2967
965 홈페이지 TOP 버튼 만들어 보기 [7] 인테리어뱅크 2006.04.10 10155
964 브라우저 도메인 주소 안나타나게 하기 [2] 인테리어뱅크 2006.04.10 8905
963 홈페이지 하단 링크주소 없에는 소스 [6] 인테리어뱅크 2006.04.10 3797
962 마우스 따라다니 면서 원형을 그리면서 돌아가는것... 왜,그러지 2006.04.07 5635
961 DHTML 계산기 왜,그러지 2006.04.05 6088
960 마우스 따라다니는 아날로그 시계 [1] 왜,그러지 2006.04.05 6597
959 텍스트 위에 네온 빛이 이동하는 효과.. 왜,그러지 2006.04.05 6270
958 3D 메세지 나타나기... 왜,그러지 2006.04.05 16112
957 두가지 색으로 깜박거리는 텍스트 keymove 2006.03.17 7354
956 제 홈페이지 분석(뭐징?) [5] 박현우 2006.03.11 13115
955 게임상의 캐릭터와 대화하는 것 같이 보이기(?) [4] 세강 :D 2006.02.24 10258
954 firefox에서 location.href안 먹힐 때 해결법 [1] 꿀벙이 2006.02.24 7871
953 [동영상강좌] 제20회차 - 다중 if문 아이티스터디 2006.02.02 7981
952 [동영상강좌] 제19회차 - 조건문 if 알아보기 아이티스터디 2006.02.02 6814
951 [동영상강좌] 제18회차 - 문자열 연산자, 조건연산자 알아보기 아이티스터디 2006.02.02 6626
950 [동영상강좌] 제17회차 - 논리연산자, 비교연산자 알아보기 아이티스터디 2006.02.02 6112
949 [동영상강좌] 제16회차 - 산술연산자, 할당연산자, 증감연산자 알아보기 아이티스터디 2006.02.02 6644