비밀번호

  • 간단 암호화/복호화~.

  • 짧은주소 : http://dreamphp.com/s/a0au

  • 작 성 자 : BiHonHomepage

  • 조 회 수 : 3926

  • 등 록 일 : 2002-10-18 14:36:00

  • 안녕하세요~ (__)

    그냥 간단히 사용할 수 있는 암호/복호화 코드에요.
    결과물 보면 알 수 있겠죠?

    "키"를 md5()를 이용해 암호화한 다음에
    "문자열"과 비트 연산을 해서 반환해주는;;;

    혹 이해가 안가면 코멘트 달아주세요.

    ================================================================================
    <?php

    $start = get_mtime();

    function get_mtime() {
      list($t1,$t2) = explode(" ",microtime());
      return $t1+$t2;
    }

    function fun_enc ($string, $key) {
      $len1 = strlen($string);
      $enckey = md5($key);
      $len2 = strlen($enckey);
      $c = 0;
      $temp = '';
      for ($i=0;$i<$len1;$i++) {
        if ($c==$len2) $c=0;
        $temp.=$string[$i]^$enckey[$c++];
      }
    // return $temp;
    // return $temp; 로 바로 결과물을 반환하면, 여기부터
      $len = strlen($temp);
      $return = '';
      for ($i=0;$i<$len;$i++) $return.=sprintf('%02X',ord($temp[$i]));
      return $return;
      // 여기까지 주석처리~!
    }

    function fun_dec ($string, $key) {
      // fun_enc()에서 return $temp; 해버렸다면 여기부터
      $len1 = strlen($string);
      $temp = '';
      for ($i=0;$i<$len1;$i+=2) $temp.=chr(hexdec(substr($string,$i,2)));
      $string = $temp;
      // 여기까지 주석처리~.
      $len1 = strlen($string);
      $enckey = md5($key);
      $len2 = strlen($enckey);
      $c = 0;
      $return = '';
      for ($i=0;$i<$len1;$i++) {
        if ($c==$len2) $c=0;
        $return.=$string[$i]^$enckey[$c++];
      }
      return $return;
    }

    $string = '비혼~!_123가나다大韓民國★♡!@#';
    $key = '1234';

    $enc = fun_enc($string,$key);
    $dec = fun_dec($enc,$key);

    echo '<xmp>';
    echo "원래 : $string
    변환 : $enc
    다시 : $dec";

    printf("\n%0.6f",get_mtime()-$start);

    echo '</xmp>';
    ================================================================================

    실행 결과물은 아래와 같아요.

    원래 : 비혼~!_123가나다大韓民國★♡!@#
    변환 : 82C0ACC647433B530701D49187CED7EBE3EECAEDBEA7ABE892EB91D8457016
    다시 : 비혼~!_123가나다大韓民國★♡!@#
    0.000674


    * 2018-02-07(수) 22:55
    <? → <?php, <xmp>를 코드 내에, 초기화 등 부분 수정. PHP 7.x 버전에서도 잘 실행됩니다.
  • 2017-01-03 20:23:25

  • naiyumie

  • 넘나 잘쓰고 있습니다.
    그냥 숫자 1, 10 이런걸 암호화 하니 너무 짧은데-_-;;
    길게 하려면 어케 하면 좋을련지여

  • 2018-02-07 22:52:46

  • BiHonHomepage

  • 어라? 나이유미님. 작년에 댓글을 남겼었네요? 왜 몰랐을까….
    이미 해결했거나, 사용하지 않거나, 다른 라이브러리 등을 사용하고 있겠죠?

    길이가 너무 짧은 경우에는 꼼수로 쓰레기 문자열을 추가해주는 방법도 있습니다.
    처리 나름이니까 [구분자][쓰레기] 문자열 붙여 인코딩, 디코딩 후 [구분자] 이후 제거.

    옛날 코드라서 엉망이네요. ^^);

+ 이름

- 홈페이지

+ 내용

+ 비밀번호

* 4~20자

+ CAPTCHA

CAPTCHA Image [새로고침] (대소문자 무시)

  • 번호

  • 제목

  • 이름

  • 등록일

  • 조회수