首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

asp代码改为c

2012-06-23 
asp代码改成c#% OPTIONEXPLICIT //强制声明变量constBASE_64_MAP_INIT ABCDEFGHIJKLMNOPQRSTUVWXYZabc

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)) 

  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 


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

  PUBLIC FUNCTION base64Decode(scrambled) 


  if len(scrambled) = 0 then 

  base64Decode = " " 

  exit function 

  end if 


  ' ignore padding //忽略填充



  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 

  ' check for stragglers, will be 2 or 3 characters //检查流浪者,将2或3个字符

  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 


' initialize 

  call initCodecs 


  'Testing code 

  dim inp, encode 

  ' inp = request.QueryString( "input ") 
  inp="&*%@@"

  encode = base64Encode(inp) 

  ' response.write "Encoded value = " & encode & nl 
'
' response.write "Decoded value = " & base64Decode(encode) & nl 

%> 
这是asp写的,帮忙转成c#.net的。

[解决办法]
VB改C#
[解决办法]
直接搜索百度有现成的,不用翻译
[解决办法]
是base64的函数吗?
与其修改不如到网上找个现成的,base64等通用加密算法网上多的是代码了。

热点排行