[[tableofcontents]] == H3Z2 == H3Z2Àº ÅؽºÆ®¿£ÄÚµù Çü½ÄÀÔ´Ï´Ù. 2006³â 11¿ù¿¡ [ºÎµé]( ½Åµ¿ÀÍ )¿¡ ÀÇÇØ Ã³À½ °í¾ÈµÇ¾úÀ¸¸ç 2008³â 8¿ù GPL·Î °ø°³ÇÏ´Â ¿£ÄÚµù Çü½ÄÀÔ´Ï´Ù. ||attachment:h3z2_mascot.png|| ¿· ±×¸²Àº ¿Ïº¸µ¿¹°À» ±×¸°°ÍÀ¸·Î H3Z2ÀÇ ¸¶½ºÄÚÆ® ÀÔ´Ï´Ù.¿Ïº¸µ¿¹°Àº ¹°°õ(water bear)¶ó°íµµ ºÒ¸®¸ç ¹Ì¼¼ÇÏ¸ç ¿ìÁÖ°ø°£¿¡¼­µµ »ì¼ö ÀÖ´Â ²öÁú±ä »ý¹°Ã¼¶ó°í ÇÕ´Ï´Ù. ____ <.)++++< budl [ºÎµé]-- [ikw3179] [[DateTime(2008-08-19T16:19:12)]] [mail:ikw3179@naver.com] || * °ü·Ã¿£ÄÚµù : Z3A2 : ¹ÙÀ̳ʸ®¿¡ ÀûÇÕÇÑ ¿£ÄÚµù Çü½Ä == H3Z2 ¿£ÄÚµå Çü½Ä == H3Z2¸¦ °í¾ÈÇÏ°Ô µÈ ¹è°æÀº Àΰø¾ð¾î¸¦ À§ÇÑ ¿©·¯°¡Áö ¿£ÄÚµù Çü½ÄÀ» ¸¸µé´Ù°¡ ¿ì¿¬È÷ ¹ß°ßÇÏ°Ô µÈ °ÍÀ¸·Î ´ÙÀ½ µî½Ä¿¡¼­ ±âÀÎÇÏ°Ô µÇ¾ú½À´Ï´Ù. ''' 36 * 36 * 50 + 16 * 46 = 65536 ''' º¸½Ã´Ù½ÃÇÇ 65536Àº 2Byte Á¤¼ö°ªÀÔ´Ï´Ù. ±×¸®°í ÁÂÇ×ÀÇ 36 , 50 , 16 , 46 Àº Á¶ÇÕÇÒ ¹®ÀÚÀÇ ¼ö¸¦ ÀǹÌÇÕ´Ï´Ù. ¸ðµÎ 50 ÀÌÇÏ·Î ¾ËÆĺª ´ë¼Ò¹®ÀÚ¸¦ ÇÕÇÑ °Í º¸´Ù ÀÛÀº ¼öÀÔ´Ï´Ù. ÀÌ°ÍÀÌ ¹«¾ùÀ» ÀÇ¹Ì ÇÒ±î¿ä? Áï ¾ËÆĺª 3°³ ¶Ç´Â 2°³·Î 2byte¸¦ Ç¥ÇöÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌ µË´Ï´Ù. ¶ÇÇÑ 'H3Z2' ¶ó´Â ¸íĪÀº " 'H' ½ÃÀÛµÉ °æ¿ì 3¹®ÀÚ 'Z' À¸·Î ½ÃÀÛµÉ °æ¿ì 2¹®ÀÚ "¶ó´Â ¶æÀ» ÀǹÌÇÕ´Ï´Ù. Á¤±ÔÇ¥Çö½ÄÀ» »ç¿ëÇÏ¸é ´ÙÀ½°ú °°½À´Ï´Ù. '''/ [ H - Y ] [ H - Y ] [ A - Y ] | [ Z A - G ] [ A - W ] / i''' Á¤±Ô½ÄÀÇ ¸Ç³¡ '''/i''' ´Â ´ë¼Ò¹®ÀÚ¿¡ ¸ðµÎ ¸ÅÄ¡ÇÑ´Ù´Â ¿É¼ÇÀÔ´Ï´Ù. Áß¿äÇÑ Á¡Àº 3¹®ÀÚ ÄÚµåÀÇ ½ÃÀÛÀÎ '''[ H - Y ]''' ¿Í 2¹®ÀÚ ÄÚµåÀÇ '''[ Z A - G ]''' °¡ ¼­·Î °ãÄ¡´Â ºÎºÐÀÌ ¾ø´Ù´Â °ÍÀÔ´Ï´Ù. ù ¾ËÆĺªÀ¸·Î 2¹®ÀÚÄڵ尡 µÉÁö 3¹®ÀÚ Äڵ尡 µÉÁö ±¸ºÐÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. ±×¸®°í ¾ËÆĺªÀº ´ÙÀ½°ú °°ÀÌ ¹è¿­µÈ ¼ø¼­´ë·Î °ªÀÌ Áõ°¡ÇÏ°Ô µË´Ï´Ù. {{{ [ H - Y ] => HhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYy [ Z A - G ] => ZzAaBbCcDdEeFfGg [ A - Y ] , [ A - W ] => AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz }}} ¾ËÆĺªÀ» À§¿Í °°ÀÌ ºÐ¹èÇÑ °ÍÀº ´ÙºÐÈ÷ ÀÓÀÇÀûÀÎ °ÍÀ¸·Î ´Ù¸¥ Àǹ̴ ¾ø½À´Ï´Ù. ´ë¼Ò¹®ÀÚ°¡ ¹Ýº¹µÈ´Ù´Â °ÍÀÌ Á» »ö´Ù¸¨´Ï´Ù. À§¿¡ °°Àº Çü½Ä¿¡ µû¶ó Á¤¼ö°ªÀ» º¯È¯ÇÏ¸é ´ÙÀ½°ú °°Àº °á°ú°¡ µË´Ï´Ù. {{{#!HTML
ZA => 0
Za => 1
ZB => 2
Zb => 3
ZC => 4
Zc => 5
ZD => 6
Zd => 7
ZE => 8
Ze => 9
ZF => 10
Zf => 11
ZG => 12
Zg => 13
ZH => 14
Zh => 15
ZI => 16
Zi => 17
ZJ => 18
Zj => 19
ZK => 20
Zk => 21
ZL => 22
Zl => 23
ZM => 24
Zm => 25
ZN => 26
Zn => 27
ZO => 28
Zo => 29
ZP => 30
Zp => 31
ZQ => 32
Zq => 33
ZR => 34
Zr => 35
ZS => 36
Zs => 37
ZT => 38
Zt => 39
ZU => 40
Zu => 41
ZV => 42
Zv => 43
ZW => 44
Zw => 45
zA => 46
za => 47
zB => 48
zb => 49
zC => 50
zc => 51
zD => 52
zd => 53
zE => 54
ze => 55
zF => 56
zf => 57
zG => 58
zg => 59
zH => 60
zh => 61
zI => 62
zi => 63
zJ => 64
zj => 65
zK => 66
zk => 67
zL => 68
zl => 69
zM => 70
zm => 71
zN => 72
zn => 73
zO => 74
zo => 75
zP => 76
zp => 77
zQ => 78
zq => 79
zR => 80
zr => 81
zS => 82
zs => 83
zT => 84
zt => 85
zU => 86
zu => 87
zV => 88
zv => 89
zW => 90
zw => 91
AA => 92
Aa => 93
AB => 94
.
.
.
.
.
.
.
gF => 700
gf => 701
gG => 702
gg => 703
gH => 704
gh => 705
gI => 706
gi => 707
gJ => 708
gj => 709
gK => 710
gk => 711
gL => 712
gl => 713
gM => 714
gm => 715
gN => 716
gn => 717
gO => 718
go => 719
gP => 720
gp => 721
gQ => 722
gq => 723
gR => 724
gr => 725
gS => 726
gs => 727
gT => 728
gt => 729
gU => 730
gu => 731
gV => 732
gv => 733
gW => 734
gw => 735
HHA => 736
HHa => 737
HHB => 738
HHb => 739
HHC => 740
HHc => 741
HHD => 742
HHd => 743
HHE => 744
HHe => 745
HHF => 746
HHf => 747
HHG => 748
HHg => 749
HHH => 750
HHh => 751
HHI => 752
HHi => 753
HHJ => 754
HHj => 755
HHK => 756
HHk => 757
HHL => 758
HHl => 759
HHM => 760
HHm => 761
HHN => 762
HHn => 763
.
.
.
.
.
.
.
.
.
.
.
.
.
.
yyH => 65500
yyh => 65501
yyI => 65502
yyi => 65503
yyJ => 65504
yyj => 65505
yyK => 65506
yyk => 65507
yyL => 65508
yyl => 65509
yyM => 65510
yym => 65511
yyN => 65512
yyn => 65513
yyO => 65514
yyo => 65515
yyP => 65516
yyp => 65517
yyQ => 65518
yyq => 65519
yyR => 65520
yyr => 65521
yyS => 65522
yys => 65523
yyT => 65524
yyt => 65525
yyU => 65526
yyu => 65527
yyV => 65528
yyv => 65529
yyW => 65530
yyw => 65531
yyX => 65532
yyx => 65533
yyY => 65534
yyy => 65535
}}} Á¤¼ö 0°ªÀº ZA¿¡ ¹èÁ¤µÇ°í 65535°ªÀº yyy¿¡ ¹èÁ¤µË´Ï´Ù. 736 °ªÀ» ±âÁØÀ¸·Î ±× ¹Ì¸¸ÀÌ¸é µÎÀÚ¸® , ÀÌ»ó À̸é 3ÀÚ¸® ¹®ÀÚ°¡ µË´Ï´Ù. * H3Z2 ÀüüÄÚµå ¸ÊÆÄÀÏ attachment:h3z2code.TXT == H3Z2 ÀÇ Æ¯Â¡ == ÅؽºÆ® ¿£ÄÚµù¿¡´Â ¿©·¯°¡Áö Á¾·ù°¡ ÀÖ½À´Ï´Ù. baae64¿Í °°Àº ¿£ÄÚµù Çü½ÄÀº ¾ËÆĺª ¼ýÀÚ ±×¸®°í '+' ±âÈ£¸¦ »ç¿ëÇϸç À¥¿¡¼­ Àü¼ÛÀ» À§ÇØ »ç¿ëµË´Ï´Ù. 16Áø¼ö Ç¥±â´Â ¾ËÆĺª°ú ¼ýÀÚ¸¦ »ç¿ëÇÏ¸ç ¹ü¿ëÀûÀ¸·Î »ç¿ëµË´Ï´Ù. Â÷ÀÌ´Â ´ÙÀ½ Ç¥·Î ºñ±³ÇÒ¼ö ÀÖ½À´Ï´Ù. || || 2byte (16ºñÆ®) || »ç¿ë¹®ÀÚ || ¿ëµµ || ¿¹( {{{'H3Z2'}}} ) || || base64 || 3¹®ÀÚ || ¾ËÆĺª , ¼ýÀÚ , ±âÈ£ ('+' , ) || À¥ Àü¼Û || {{{'SDNaMg=='}}} || || 16Áø¼ö || 4¹®ÀÚ || ¾ËÆĺª , ¼ýÀÚ || ¹ü¿ë || {{{'48335A32'}}} || || H3Z2 || 3~2 ¹®ÀÚ || ¾ËÆĺª || ¹ü¿ë || {{{'KwVKuC'}}} || H3Z2Àº ¾ËÆĺª¸¸À¸·Î ¿£ÄÚµùÇÏ¸ç ±æÀ̸鿡¼­µµ °¡Àå È¿À²ÀûÀÔ´Ï´Ù.( 2byte ³»¿¡¼­ ) ´Ü 2byte´ÜÀ§·Î ºÐ¸®Çϱ⠶§¹®¿¡ ¸¶Áö¸· Null¹®ÀÚ byteÀÇ Ã³¸®°¡ ÇÊ¿äÇÕ´Ï´Ù. ±âº»ÀûÀ¸·Î ¹®ÀÚ¿­ÀÇ ¸¶Áö¸· Null¹®ÀÚ´Â »èÁ¦ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ Æ¯Â¡À» °¡Áö´Â H3Z2Àº ¹ü¿ëÀûÀ¸·Î »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ¼Ò½ºÄڵ忡¼­ ¾ËÆĺª°ú ¼ýÀÚÁ¶ÇÕÀ¸·Î ±¸¼ºµÇ´Â º¯¼ö¸í¿¡ HTMLÇü½ÄÀÇ ÅÂ±× ¹®ÀÚ¿­À» ¿£ÄÚµùÇÏ¿© ³ÖÀ» ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ¿Í°°Àº ÇÁ·ÎÁ§Æ®´Â ÇöÀç ÁøÇàÁß¿¡ ÀÖ½À´Ï´Ù. '''H3Z2''' ÀÇ ÀúÀÛ±ÇÀº '''GPL'''ÀÔ´Ï´Ù. ÇÊ¿ä¿¡ µû¶ó ´Ù¾çÇÑ ¿ëµµ·Î ±â´ÉÀ» È®ÀåÇÏ¿© È°¿ëÇÏ´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù. == H3Z2 ±¸Çö ÇÁ·Î±×·¥ == ´ÙÀ½ H3Z2¸¦ PHP·Î ±¸ÇöÇÑ Å¬·¡½ºÀÔ´Ï´Ù. ---- {{{#!php = 65536 ) trigger_error("°æ°è°ª( 0 ~ 65535 )À» ¹þ¾î³­ ¼öÄ¡ \$codeVal = $codeVal [".__FUNCTION__."]", E_USER_ERROR ); if( $codeVal < H3Z2_DIV ) // $codeVal < 736 ; { $rstr .= $H3Z2[Z][ intval( $codeVal / 46 ) ]. $H3Z2[A][ $codeVal %46 ] ; } else { // >= 736 $codeVal -= H3Z2_DIV ; $midVal = intval( $codeVal / 1800 );// 1800 = 36*50 $midRem = $codeVal % 1800 ; $rstr .= $H3Z2[H][ $midVal ]. $H3Z2[H][ intval( $midRem / 50 ) ]. $H3Z2[A][ $midRem % 50 ] ; } //return 1 ; } // function c3encode_subfunc ; ////------------- DECODE ---------------///// /// @function decode ´Â H3Z2 ¹®ÀÚ¿­À» ¼ýÀÚÀÇ ¹è¿­ ¶Ç´Â ¿ø·¡ÀÇ ¹®ÀÚ¿­·Î ¹ÝȯÇÑ´Ù. /// $mode °ªÀÌ 1 ¶Ç´Â 2·Î ¼³Á¤µÇ¸é ¹ÙÀ̳ʸ® ¹®ÀÚ¿­·Î ¹ÝȯÇÏ´Â µ¥ /// 1 ÀÌ¸é ¸¶Áö¸· ³Î¹®ÀÚ¸¦ Á¦°ÅÇÏ°í 2À̸é Á¦°ÅÇÏÁö ¾Ê´Â´Ù. /// 0 ÀÌ¸é ¹è¿­°ªÀ¸·Î ¹ÝȯÇÑ´Ù. function decode( $h3z2str , $mode = 1 ) { $Rary = array() ; $R = "" ; for($i = 0 ; // (.) Àº ¸ÅÄ¡µÇÁö ¾Ê´Â ºÎºÐÀ» ¸ÅÄ¡ÇÏ´Â °ÍÀÓ //\G¿É¼ÇÀ» »ç¿ëÇÏ¿© ¹®ÀÚ¿­ÀÇ ½ÃÀۺκÐÀÌ ¸ÅÄ¡µÇµµ·ÏÇØ¾ß ÇÑ´Ù. ^Àº »ç¿ëÇÒ¼ö ¾ø´Ù. preg_match( "/\G(?:[H-Y]{2}[A-Y]|[ZA-G][A-W]|(.))/i" , $h3z2str , $match , 0 , $i ) ; $i += strlen( $match[0] ) ) { if( $match[1] ){ trigger_error("ÀÔ·Â H3Z2ÄÚµå( $h3z2str , $i:$match[1] )ÀÇ ÆÐÅÏ¿À·ù [".__FUNCTION__."]" , E_USER_ERROR ) ; } $ecode = $match[0] ; $dcode = h3z2code::decode_core( $ecode ) ; switch( $mode ) { case 0 : array_push( $Rary , $dcode ) ; break ; // ¹ÙÀ̳ʸ®·Î ÀúÀå½Ã little endian ¹æ½ÄÀ¸·Î ¹Ýȯ !! case 1 : case 2 : $R .= pack( "v" , $dcode ); break ; } } switch( $mode ) { case 0 : return $Rary ; // °¡Àå ¸¶Áö¸· ¹®ÀÚ°¡ NULL¹®ÀÚ À̸é Á¦°ÅÇÑ´Ù. case 1 : return rtrim( $R , "\0" ); case 2 : return $R ; } ; } // function decode function decode_init( ) { if( $H3Z2_D ) return ; global $H3Z2 , $H3Z2_D ; $H3Z2_D[H] = array(); $H3Z2_D[Z] = array(); $H3Z2_D[A] = array(); foreach( $H3Z2 as $key => $val ) { for( $i = 0 ; $i < strlen($H3Z2[$key]); $i++ ) { $H3Z2_D[$key][$val[$i]] = $i ; } } } function decode_core( $ecode ) { h3z2code::decode_init( ); global $H3Z2_D ; $rVal = 0 ; if( preg_match( "/^([ZA-G])(.)/i" , $ecode , $mch ) ) { $rVal = $H3Z2_D[Z][$mch[1]]*46 + $H3Z2_D[A][$mch[2]] ; } else if( preg_match( "/^([H-Y])([H-Y])(.)/i" , $ecode , $mch ) ) { $rVal = $H3Z2_D[H][$mch[1]]*1800 + $H3Z2_D[H][$mch[2]]*50 + $H3Z2_D[A][$mch[3]] + H3Z2_DIV ; // 736 } else { trigger_error("ÀÔ·Â H3Z2ÄÚµå( $ecode )ÀÇ ÆÐÅÏ¿À·ù [".__FUNCTION__."]" , E_USER_ERROR ) ; } return $rVal ; } }//class h3z2code }}} ---- ´ÙÀ½Àº »ùÇà ÇÁ·Î±×·¥ÀÔ´Ï´Ù. ---- {{{#!php > SAMPLE_TEXT; $H3Z2_CODE = h3z2code::encode( $sample_text ); $BASE64_CODE = base64_encode( $sample_text ) ; $re_sample_text = h3z2code::decode( $H3Z2_CODE ); print "
¿øº» ÅؽºÆ®
";
print wordwrap( $sample_text  , 80, "\n", 1 ); 

print "

H3Z2

"; print wordwrap( $H3Z2_CODE , 80, "
", 1 ); print "


BASE64

"; print wordwrap( $BASE64_CODE , 80, "
", 1 ); print "


º¹±¸ ÅؽºÆ®
";
print wordwrap( $re_sample_text  , 80, "\n", 1 );  
print "

"; ?> }}} ---- * ÷ºÎÆÄÀÏ : attachment:h3z2_class.zip ----