日期:2014-05-17  浏览次数:20491 次

asp代码改成c#
<% 

  ' OPTION EXPLICIT //强制声明变量

  const BASE_64_MAP_INIT = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ " 

  dim nl 

  ' zero based arrays //零基础数组


  dim Base64EncMap() 

  dim Base64DecMap(127) 


  ' must be called before using anything else //在使用前必须被别的什么吗

  PUBLIC SUB initCodecs() 

  ' init vars 

  nl = " <P> " & chr(13) & chr(10) 

  ' setup base 64 //设置基地64



  dim max, idx 

  max = len(BASE_64_MAP_INIT) 
  'response.Write(mid(BASE_64_MAP_INIT,idx+1,1))
' response.End()
  redim Base64EncMap(max-1) 
  for idx =0 to max-1
  ' one based string 
  'response.Write("yy"&idx&"yy")
' 'response.End()
  Base64EncMap(idx)=mid(BASE_64_MAP_INIT,idx+1,1) 

  next 

  for idx = 0 to max - 1 

  Base64DecMap(ASC(Base64EncMap(idx))) = idx 
  ' response.Write(Base64EncMap(idx)&Base64EncMap(idx))

  next 


  END SUB 


  ' encode base 64 encoded string //编码base 64编码的字符串

  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 

  ' check for stragglers //检查掉队

  if by3 < len(plain) then 

  first = asc(mid(plain, ndx+0, 1))