¾È±Ô °øºÎ¹æ

ACTIVE SERVER PAGE > ¾Ïȣȭ [base64]

µî·ÏÀÏ : 2017-07-04 18:14 Á¶È¸¼ö : 52,626


 ¹¹ ¾ÏÈ£ÇÐÀ̶û »ó°üÀº ¾øÁö¸¸ ¾Ïȣȭ, º¹È£È­¶õ À̸§À¸·Î ¸¹ÀÌ ¾²ÀÌ´Â BASE64 ÀÎÄÚµù µðÄÚµù ÇÔ¼ö Áß ÇÑ°¡Áö ÀÔ´Ï´Ù.
 »ç¿ë¹ýÀº °£´ÜÇÕ´Ï´Ù. ¾Æ·¡¿Í °°ÀÌ ÇÔ¼ö¸¸ È£ÃâÇØ ÁÖ½Ã¸é µË´Ï´Ù.

 'ÀÎÄÚµù
 encodeValue = Base64encode("ABCDEF")
 response.Write encodeValue

 'µðÄÚµù
 decodeValue = Base64decode(encodeValue)
 response.Write decodeValue

 <%
 '/////////////////////////////////////////////////
 '/// initialize
 '/// ÃʱâÈ­
 '/////////////////////////////////////////////////
 call initCodecs

 '/////////////////////////////////////////////////
 '/// Testing code
 '/// Å×½ºÆ® ÄÚµù
 '/////////////////////////////////////////////////
 dim inp, encode
 inp = "choiankyu"
 encode = base64Encode(inp)
response.write " ¹®ÀÚ¿­ = choiankyu " &nl
response.write " Encoded value = " & encode &nl
response.write " Decoded value = " & base64Decode(encode) &nl
 %>
 

 


  '/////////////////////////////////////////////////
  '/// ¾î¶²ºÐÀÌ ¿Ü±¹¼Ò½º¿¡¼­ ±¸ÇØ ÀÎÅͳݿ¡ ¿Ã·Á³õÀº ¼Ò½ºÀÔ´Ï´Ù.
  '/// ÄíÅ°¿¡ ¸¹ÀÌ »ç¿ëÇÏ´õ±º¿ä.
  '/////////////////////////////////////////////////


  OPTION EXPLICIT
  const BASE_64_MAP_INIT = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
  dim nl
  ' zero based arrays
  dim Base64EncMap(63)
  dim Base64DecMap(127)

  '/////////////////////////////////////////////////
  '/// must be called before using anything else
  '/// ´Ù¸¥ ÀÛ¾÷ÀÌÀü¿¡ ¸ÕÀú È£ÃâÇؾßÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù.
  '/////////////////////////////////////////////////
  PUBLIC SUB initCodecs()
   ' init vars
   nl = "&lt;P&gt;" & chr(13) & chr(10)
   ' setup base 64
   dim max, idx
      max = len(BASE_64_MAP_INIT)
   for idx = 0 to max - 1
      ' one based string
      Base64EncMap(idx) = mid(BASE_64_MAP_INIT, idx + 1, 1)
   next
   for idx = 0 to max - 1
      Base64DecMap(ASC(Base64EncMap(idx))) = idx
   next
  END SUB




  '/////////////////////////////////////////////////
  '/// encode base 64 encoded string
  '/// Base64·Î ÀÎÄÚµùÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù.
  '/////////////////////////////////////////////////
  PUBLIC FUNCTION base64Encode(plain)

   if len(plain) = 0 then
      base64Encode = ""
      exit function
   end if

   dim ret, ndx, by3, first, second, third
   by3 = (len(plain) \ 3) * 3
   ndx = 1
   do while ndx <= by3
      first  = asc(mid(plain, ndx+0, 1))
      second = asc(mid(plain, ndx+1, 1))
      third  = asc(mid(plain, ndx+2, 1))
      ret = ret & Base64EncMap(  (first \ 4) AND 63 )
      ret = ret & Base64EncMap( ((first * 16) AND 48) + ((second \ 16) AND 15 ) )
      ret = ret & Base64EncMap( ((second * 4) AND 60) + ((third \ 64) AND 3 ) )
      ret = ret & Base64EncMap( third AND 63)
      ndx = ndx + 3
   loop

   if by3 < len(plain) then
      first  = asc(mid(plain, ndx+0, 1))
      ret = ret & Base64EncMap(  (first \ 4) AND 63 )
      if (len(plain) MOD 3 ) = 2 then
         second = asc(mid(plain, ndx+1, 1))
         ret = ret & Base64EncMap( ((first * 16) AND 48) + ((second \ 16) AND 15 ) )
         ret = ret & Base64EncMap( ((second * 4) AND 60) )
      else
         ret = ret & Base64EncMap( (first * 16) AND 48)
         ret = ret & "="
      end if
      ret = ret & "="
   end if

   base64Encode = ret
  END FUNCTION




  PUBLIC FUNCTION base64Decode(scrambled)

   if len(scrambled) = 0 then
      base64Decode = ""
      exit function
   end if

   dim realLen
   realLen = len(scrambled)
   do while mid(scrambled, realLen, 1) = "="
      realLen = realLen - 1
   loop
   dim ret, ndx, by4, first, second, third, fourth
   ret = ""
   by4 = (realLen \ 4) * 4
   ndx = 1
   do while ndx <= by4
      first  = Base64DecMap(asc(mid(scrambled, ndx+0, 1)))
      second = Base64DecMap(asc(mid(scrambled, ndx+1, 1)))
      third  = Base64DecMap(asc(mid(scrambled, ndx+2, 1)))
      fourth = Base64DecMap(asc(mid(scrambled, ndx+3, 1)))
      ret = ret & chr( ((first * 4) AND 255) +  ((second \ 16) AND 3))
      ret = ret & chr( ((second * 16) AND 255) + ((third \ 4) AND 15) )
      ret = ret & chr( ((third * 64) AND 255) +  (fourth AND 63) )
      ndx = ndx + 4
   loop
   if ndx < realLen then
      first  = Base64DecMap(asc(mid(scrambled, ndx+0, 1)))
      second = Base64DecMap(asc(mid(scrambled, ndx+1, 1)))
      ret = ret & chr( ((first * 4) AND 255) +  ((second \ 16) AND 3))
      if realLen MOD 4 = 3 then
         third = Base64DecMap(asc(mid(scrambled,ndx+2,1)))
         ret = ret & chr( ((second * 16) AND 255) + ((third \ 4) AND 15) )
      end if
   end if

   base64Decode = ret
  END FUNCTION


¡Ø Ȥ½Ã µµ¿òÀÌ µÇ¼Ì´Ù¸é ´ñ±Û¿¡ ÇѸ¶µð ³²°ÜÁÖ¼¼¿ä!
ÀÛ¼ºÀÚ   ºñ¹Ð¹øÈ£
ÀÚµ¿±Û ¹æÁö     (ÀÚµ¿±Û ¹æÁö ±â´ÉÀÔ´Ï´Ù.)
³»¿ë   ´ñ±Û´Þ±â 
À̸ÞÀÏ ¹®ÀÇ : cak0280@nate.com  
Copyright 2000 By ENTERSOFT.KR All Rights Reserved.