메뉴 건너뛰기

프로그램언어

조회 수 10626 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

암호화 encrypt 함수

 

### PHP암호화 함수
function encrypt($data,$k) { 
 $encrypt_these_chars = "1234567890ABCDEFGHIJKLMNOPQRTSUVWXYZabcdefghijklmnopqrstuvwxyz.,/?!$@^*()_+-=:;~{}";
 $t = $data;
 $result2;
 $ki;
 $ti;
 $keylength = strlen($k);
 $textlength = strlen($t);
 $modulo = strlen($encrypt_these_chars);
 $dbg_key;
 $dbg_inp;
 $dbg_sum;
 
 for ($result2 = "", $ki = $ti = 0; $ti < $textlength; $ti++, $ki++) {
  if ($ki >= $keylength) {
   $ki = 0;
  }
  $dbg_inp += "["+$ti+"]="+strpos($encrypt_these_chars, substr($t, $ti,1))+" ";   
  $dbg_key += "["+$ki+"]="+strpos($encrypt_these_chars, substr($k, $ki,1))+" ";   
  $dbg_sum += "["+$ti+"]="+strpos($encrypt_these_chars, substr($k, $ki,1))+ strpos($encrypt_these_chars, substr($t, $ti,1)) % $modulo +" ";
  $c = strpos($encrypt_these_chars, substr($t, $ti,1));
  $d;
  $e;
  
  if ($c >= 0) {
   $c = ($c + strpos($encrypt_these_chars, substr($k, $ki,1))) % $modulo;
   $d = substr($encrypt_these_chars, $c,1);
   $e .= $d;
  } else {
   $e += $t.substr($ti,1);
  }
  }
  
  $key2 = $result2;
  $debug = "Key  : "+$k+"\n"+"Input: "+$t+"\n"+"Key  : "+$dbg_key+"\n"+"Input: "+$dbg_inp+"\n"+"Enc  : "+$dbg_sum;
  return $e . "";
 }

 

암호화 사용
$data = "iloveyou!good"; //암호화 해서 넘길 값
$key = "123456"; //암호화에 이용될 키 값
$edata = encrypt($data,$key); //key 값을 이용해 data 값을 암호화해서 edata에 담았습니다.
$getdata = urlencode($edata); //이 값을 post가 아닌 get으로 넘긴다면 urlencode를 해주시는게 좋겠죠!
echo $getdata; //최종 암호화 및 url 엔코드까지 한 값 입니다.

 

출력 : imqyi%3Fov%40jstd

 

복호화 decrypt 함수



function decrypt($key2,$secret) {
 $encrypt_these_chars = "1234567890ABCDEFGHIJKLMNOPQRTSUVWXYZabcdefghijklmnopqrstuvwxyz.,/?!$@^*()_+-=:;~{}";
 $input = $key2;
 $output = "";
 $debug = "";
 $k = $secret;
 $t = $input;
 $result;
 $ki;
 $ti;
 $keylength = strlen($k);
 $textlength = strlen($t);
 $modulo = strlen($encrypt_these_chars);
 $dbg_key;
 $dbg_inp;
 $dbg_sum;
 for ($result = "", $ki = $ti = 0; $ti < $textlength; $ti++, $ki++) {
  if ($ki >= $keylength){
   $ki = 0;
  }
  $c = strpos($encrypt_these_chars, substr($t, $ti,1));
  if ($c >= 0) {
   $c = ($c - strpos($encrypt_these_chars , substr($k, $ki,1)) + $modulo) % $modulo;
   $result .= substr($encrypt_these_chars , $c, 1);
  } else {
   $result += substr($t, $ti,1);
  }
 }
 return $result;
}

 

 

복호화 사용


$data = urldecode($getdata); //urlencode로 받은 값을 먼저 urldecode 처리해야함
$key = "123456"; //암호화 할 때 이용한 키값과 동일하게 사용
$ddata = decrypt($data,$key); //복호화 처리
echo $ddata; //최종 복호화 값 전달하고자 하는 값이 제대로 전달 되었군요!

 

출력결과 : iloveyou!good

위 암호화 복호화 방식의 단점은
$encrypt_these_chars = "1234567890ABCDEFGHIJKLMNOPQRTSUVWXYZabcdefghijklmnopqrstuvwxyz.,/?!$@^*()_+-=:;~{}";

에 지정된 값만 암호화 된다는 것 입니다.

즉, 암호화 비교를 할 값이 없는건에 대해서는 추가 해야 합니다.

참고로, 한글은 안됩니다. ^^


  1. No Image 06Mar
    by
    2017/03/06 Views 17474 

    엑셀(*.xls) 화일을 PHP에서 읽기

  2. No Image 23Dec
    by
    2016/12/23 Views 17328 

    시간관련함수

  3. 게시판 페이징 기법과 개념

  4. PHP에서 Excel 파일을 만들 수 있는 PHPExcel

  5. No Image 06Mar
    by
    2017/03/06 Views 17109 

    지엠 웹에디터 v1.1 (저작권표시없음)|

  6. No Image 07Mar
    by
    2017/03/07 Views 17080 

    www가 붙은 도메인과 안붙은 같은 도메인, 로그인 세션 유지

  7. No Image 06Mar
    by
    2017/03/06 Views 17063 

    PHP 만년달력 소스

  8. No Image 07Mar
    by
    2017/03/07 Views 17004 

    php 내장함수

  9. No Image 06Mar
    by
    2017/03/06 Views 16707 

    PHP 날짜, 시간 관련 함수. date(), mktime()

  10. No Image 06Mar
    by
    2017/03/06 Views 16610 

    PHP의 유동변수!? - $a1 ~ $a2 같은 형식의 변수를 반복문 돌릴때...

  11. No Image 06Mar
    by
    2017/03/06 Views 15769 

    php로 db 컨트롤 1

  12. No Image 06Mar
    by
    2017/03/06 Views 15580 

    php 문자열관련 함수

  13. No Image 06Mar
    by
    2017/03/06 Views 15508 

    메일주소의 골뱅이를 그림처리하기

  14. base64 인코딩/디코딩 함수의 특징

  15. PHP 네이버블로그 원격 글쓰기 API 소스

  16. No Image 09Feb
    by 조쉬
    2018/02/09 Views 10626 

    PHP에서 암호화 encrypt 복호화 decrypt 해서 값을 넘기기

  17. No Image 04Jul
    by
    2018/07/04 Views 8456 

    AJAX를 활용하여 JSON 댓글 처리하기 (PHP)

  18. No Image 28Mar
    by
    2018/03/28 Views 8154 

    MySQL(MariaDB) 테이블 만들기

  19. [이클립스]PHP 개발환경 만들기

  20. No Image 24Jul
    by
    2018/07/24 Views 7322 

    헤더이용 다운로드 받을시 바로열기부분 소스

Board Pagination Prev 1 ... 4 5 6 7 8 9 10 11 12 13 ... 17 Next
/ 17

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved