달력

4

« 2025/4 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
2009. 11. 5. 11:47

숫자에관련된 인코딩 및 디코딩 PHP2009. 11. 5. 11:47

/////////////// 숫자에관련된 인코딩 및 디코딩
//미리 숫자, 문자 치환용 10의 배열을 만들어 두고 맞게 하는거다. 이것도 간단한 눈속임용.

function stamp_encrypt($scnum){ //시간스탬프나 숫자를 입력받아 영문자로 변환
if(!$scnum) return;
$en_st = array("L", "H", "K", "W", "P", "V", "N", "S", "D", "F");
$en_kcode[0] = array("X", "M", "Q", "S", "U", "O", "E", "K", "G", "A");
$en_kcode[1] = array("B", "F", "I", "J", "D", "M", "K", "H", "Q", "G");
$en_kcode[2] = array("O", "R", "Q", "S", "P", "L", "V", "K", "G", "C");
$en_kcode[3] = array("A", "C", "E", "G", "K", "M", "P", "R", "T", "I");
$en_kcode[4] = array("D", "M", "S", "Q", "R", "X", "F", "K", "W", "E");
$en_kcode[5] = array("X", "K", "Q", "S", "M", "B", "Z", "E", "F", "A");
$en_kcode[6] = array("X", "W", "Z", "Y", "A", "O", "E", "K", "Q", "D");
$en_kcode[7] = array("C", "E", "J", "L", "T", "X", "Y", "K", "G", "H");
$en_kcode[8] = array("F", "R", "T", "S", "G", "O", "E", "K", "U", "B");
$en_kcode[9] = array("L", "H", "K", "W", "P", "V", "N", "S", "D", "F");
$TG_str = (string)$scnum;
// $key = substr($TG_str,-1,1);
$key = rand(0,9); //랜덤
$encoder_key = $en_st[$key]; //사용한 코드의 식별자. 변환스트링 마지막에 추가한다.
$en_code = $en_kcode[$key]; //
for($i=0; $i < 10; $i++){ $TG_str = str_replace($i, $en_code[$i], $TG_str); }
return $encoder_key.$TG_str;
}

function stamp_decrypt($scnum){ //시간스탬프나 숫자를 입력받아 영문자로 변환
if(!$scnum) return;
$en_st = array("L", "H", "K", "W", "P", "V", "N", "S", "D", "F");
$encoder_key = substr($scnum,0,1); //변환기준식별자를 얻어온다.
$tmplen = strlen($scnum); $TG_str = substr($scnum, 1); //실질적인 데이터문자열을 뽑아온다.
$key = 99;
for($i=0;$i < 10; $i++){
if($en_st[$i]==$encoder_key){ $key = $i; break; }
}
if($key == 99) return; //찾은 기준키가 없으므로 그냥 나간다.
$en_kcode[0] = array("X", "M", "Q", "S", "U", "O", "E", "K", "G", "A");
$en_kcode[1] = array("B", "F", "I", "J", "D", "M", "K", "H", "Q", "G");
$en_kcode[2] = array("O", "R", "Q", "S", "P", "L", "V", "K", "G", "C");
$en_kcode[3] = array("A", "C", "E", "G", "K", "M", "P", "R", "T", "I");
$en_kcode[4] = array("D", "M", "S", "Q", "R", "X", "F", "K", "W", "E");
$en_kcode[5] = array("X", "K", "Q", "S", "M", "B", "Z", "E", "F", "A");
$en_kcode[6] = array("X", "W", "Z", "Y", "A", "O", "E", "K", "Q", "D");
$en_kcode[7] = array("C", "E", "J", "L", "T", "X", "Y", "K", "G", "H");
$en_kcode[8] = array("F", "R", "T", "S", "G", "O", "E", "K", "U", "B");
$en_kcode[9] = array("L", "H", "K", "W", "P", "V", "N", "S", "D", "F");
$en_code = $en_kcode[$key];
for($i=0; $i < 10; $i++){ $TG_str = str_replace($en_code[$i], $i, $TG_str); }
if(isnum($TG_str)==1){ return (int)$TG_str; }
return;
}
:
Posted by 비개인오후