반응형
자바스크립트(Javascript) 입력된 문자열을 암호화 복호화 하기 |
개발환경 : window 7 64bit, Microsoft Explorer 11 |
예제는 에디터 박스에 입력된 문자열을 암호화 하고
암호화된 코드를 다시 복호화 하는 과정을 보여주고 있다.
특별한 암호화 방법은 아니고 아스키 코드를 문자로
문자를 아스키 코드로 바꾸어 주는 것이다.
charCodeAt() 함수는 문자를 아스키로 변환해주며
fromCharCode() 는 아스키를 문자로 바꿔주고 있다.
Function Encrypt() 암호화 함수에서는 charCodeAt() 를
사용해서 문자열을 만들고 있습니다.
function Encrypt(theText) { output = new String; Temp = new Array(); Temp2 = new Array(); TextSize = theText.length; for (i = 0; i < TextSize; i++) { rnd = Math.round(Math.random() * 122) + 68; Temp[i] = theText.charCodeAt(i) + rnd; Temp2[i] = rnd; } for (i = 0; i < TextSize; i++) { output += String.fromCharCode(Temp[i], Temp2[i]); } return output; }
Function unEncrypt() 는 암호화 문자열을 fromCharCode()
사용해 복원하고 있습니다.
function unEncrypt(theText) { output = new String; Temp = new Array(); Temp2 = new Array(); TextSize = theText.length; for (i = 0; i < TextSize; i++) { Temp[i] = theText.charCodeAt(i); Temp2[i] = theText.charCodeAt(i + 1); } for (i = 0; i < TextSize; i = i+2) { output += String.fromCharCode(Temp[i] - Temp2[i]); } return output; }
다음은 화면을 구현한 전체 소스 코드입니다.
<HEAD> <SCRIPT LANGUAGE="JavaScript"> <!-- Begin function Encrypt(theText) { output = new String; Temp = new Array(); Temp2 = new Array(); TextSize = theText.length; for (i = 0; i < TextSize; i++) { rnd = Math.round(Math.random() * 122) + 68; Temp[i] = theText.charCodeAt(i) + rnd; Temp2[i] = rnd; } for (i = 0; i < TextSize; i++) { output += String.fromCharCode(Temp[i], Temp2[i]); } return output; } function unEncrypt(theText) { output = new String; Temp = new Array(); Temp2 = new Array(); TextSize = theText.length; for (i = 0; i < TextSize; i++) { Temp[i] = theText.charCodeAt(i); Temp2[i] = theText.charCodeAt(i + 1); } for (i = 0; i < TextSize; i = i+2) { output += String.fromCharCode(Temp[i] - Temp2[i]); } return output; } // End --> </script> </HEAD> <BODY> <center> <form name=encform onsubmit="return false;"> <textarea name=box1 rows=5 cols=50>The quick brown fox jumps over the lazy dog</textarea> <p> <input type=button value="Encrypt Box1 to Box2" onClick="this.form.box2.value=Encrypt(this.form.box1.value);"> <p> <textarea name=box2 rows=5 cols=50></textarea> <p> <input type=button value="Decrypt Box2 to Box3" onClick="this.form.box3.value=unEncrypt(this.form.box2.value);"> <p> <textarea name=box3 rows=5 cols=50></textarea> </form> </center>
반응형
'웹 프로그래밍 > 자바스크립트' 카테고리의 다른 글
자바스크립트(Javascript) IF… Else 구분 사용하기 (0) | 2014.09.22 |
---|---|
자바스크립트(javascript) for 반복문 사용법 (0) | 2014.09.20 |
자바스크립트(Javascript) 에디터 박스에 링크된 이미지 URL 정보출력하기 (0) | 2014.08.25 |
자바스크립트(Javascript) 속도관계 변환, 시속, 분속, 초속, 피트, 노트 계산기 (0) | 2014.08.25 |
크롬에서 자바스크립트(Javascript) 코딩하기 (2) | 2014.08.06 |
Jquery 로 tab(탭) 구현하기 (5) | 2014.06.08 |
자바스크립트(Javascript) 로 모바일웹을 표현할 때 해상도에 맞게 표현하기 (0) | 2014.02.24 |
Easy Slider 를 이용하여 이미지 슬라이더 구현하기 (2) | 2013.06.14 |