웹모아
웹모아[손님] 검색   로그인 / 회원가입    



 
토막소스
 


간단한 암호화/복호화 함수
  2008-09-05 20:57:49 댓글:(0)   조회:1708



<? 
function EnCode($sText, $sCode) { 
    $cntData = strlen($sText) - 1; 
    $cntCode = strlen($sCode) - 1; 
     
    $arrData = array(); 
    $arrCode = array(); 
     

    for($i = 0;$cntData >= $i; $i++) 
        $arrData[$i] = $sText[$i]; 

    for($i = 0;$cntCode >= $i; $i++) 
        $arrCode[$i] = $sCode[$i]; 
     
    $flag = 0; 
    $strResult = ""; 

    for($i = 0;$cntData >= $i; $i++) { 

        $strResult = $strResult . (ord($arrData[$i]) ^ ord($arrCode[$flag])) . chr(8); 

        if($flag == $cntCode) 
            $flag = 0; 
        else 
            $flag++; 
    } 

    return base64_encode($strResult); 



function DeCode($sText, $sCode) { 

    $sText = base64_decode($sText); 
     
    $arrData = split(chr(8), $sText); 
    $arrCode = array(); 

    $cntData = count($arrData) - 2; 
    $cntCode = strlen($sCode) - 1; 
     
    for($i = 0; $cntCode >= $i; $i++) 
        $arrCode[$i] = $sCode[$i]; 
     
    $flag = 0; 
    $strResult = ""; 

    for($i = 0;$cntData >= $i; $i++) { 
        $strResult = $strResult . chr((int)($arrData[$i]) ^ ord($arrCode[$flag])); 
         
        if($flag == $cntCode) 
            $flag = 0; 
        else 
            $flag++; 
    } 

    return $strResult; 


$testData = "안녕하세요"; 
$testKey = "asdjhhjksa"; 

$encodingData = EnCode($testData, $testKey); 
$decodingData = DeCode($encodingData, $testKey); 

echo "$encodingData <BR>"; 
echo "$decodingData <BR>"; 

$testData = "I am a Boy!! You are a Girl!!"; 
$testKey = "aaaa"; 

$encodingData = EnCode($testData, $testKey); 
$decodingData = DeCode($encodingData, $testKey); 

echo "$encodingData <BR>"; 
echo "$decodingData <BR>"; 
?> 

여기서 sCode 는 열쇠코드 입니다. 이걸모르면 암호를 풀수가 없죠 
sText의 바이트문자를 sCode의 바이트 문자로 XOR 한 것입니다. 예를 들어 
sText  = "test" 
sCode  = "key" 이면 

t XOR k 
e XOR e 
s XOR y 
t XOR k 
이런식으로 암호화시킵니다. 
실제연산은 아스키코드값으로 합니다. 
실제 암호화된 데이터는 "3101031"이며 
""로 구분됩니다. (참고로   CHR(8) 입니다.) 

DeCode함수에서는 암호화된 데이터를 
키값을 이용해 풉니다. 

PHP에 암호화/복호화 함수가 있지만 다른언어와 함께 쓸수있겠죠~^^; 
예들들어 PHP <=> ASP 간에 데이터암호화해서 통신할수있겠죠..



 댓글 (0)


토막소스
페이지: 1 / 4   


   이미지 사이즈 비율대로 축소1034
   PHP- 파일 다운로드시 속도 제한하기1795
     파일 다운로드 속도 제한1514
   ffmpeg 설치 후 php 업로드 간단 테스트2438
   새청없이 주소검색2088
   EUC-KR<=>UTF-8 상호변환 하기1997
   키를 이용한 암호화/복호화 함수입니다.1625
간단한 암호화/복호화 함수1709
   PHP로 작동하는 RSS 읽는 함수1531
   [PHP] 자동 썸네일 이미지 만들기2143
   내용 검색시 검색어 내용 포함되어있는 부분 출력하기1500
   사이트 방문경로와 검색한 단어 알기1477
   이미지 실제경로를 않보여주고 이미지 출력하기(2) 4995
    Ajax로 구연한 실시간 서버시간 출력2362
   ajax refresh(2초에 한번 자동 페이지로딩5220
   refresh.php1496
   연합뉴스 샘플1637
   구글뉴스1467
   웹페이지의 문자열 가져오기 소스1718
   XML<-->Array 클래스(4) 1774
   str_replace() 한글치환 보강1883
   php로 텍스트라인에서 영문 한글 특수문자 숫자 지2893
   추천 하려면..어떻게 해야하죠?(1) 1543
   들어온 경로 URL 기록 남기기1692
   중복 로그인 방지법4419
   세션 DB 처리 소스1612
   한페이지에서 체크된것은 Y, 아니면 N으로 업데이트(1) 1598
   [제로보드] 쪽지 도착하면 자동으로 뜨게 하기(홈마스타)1573
   PHP특강(28)-쪽지 확인창 띄워주기(홈마스타)1783
   [초보강좌] 세션을 DB로 관리하기 + 쪽지 확인하(홈마스타)792
[1]  [2]  [3]  [4]  

복수단어 검색은 공백(space)로 구분해 주세요. 1





최근 글
[손님]

인기 글
[손님]
[홈마스타] [RE] input type=\\
[홈마스타] input 버턴의 모양
[기무진선] 모의고사질문이요