base64的java实现方法计算机二级考试

文章作者 100test 发表时间 2009:06:15 09:48:54
来源 100Test.Com百考试题网


  编辑特别推荐:

  全国计算机等级考试(等考)指定教材

  全国计算机等级考试学习视频

  全国计算机等级考试网上辅导招生

  全国计算机等级考试时间及科目预告

  百考试题教育全国计算机等级考试在线测试平台

  全国计算机等级考试资料下载

  全国计算机等级考试论坛

  计算机等级考试四级应用题解析汇总

  2009年下半年全国计算机二级考试报名时间从6月1日起已经开始报名。详情点击:2009年下半年全国计算机等级考试各地报名点汇总。2009年下半年全国计算机二级考试时间是2009年9月19日至23日。更多优质资料尽在百考试题论坛 百考试题在线题库

  base64的编码,解码算法如下:
  view plaincopy to clipboardprint?
  public class Base64
  {
  /**
  * 将原始数据编码为base64编码
  */
  static public char[] encode(byte[] data)
  {
  char[] out = new char[((data.length 2) / 3) * 4].
  for (int i = 0, index = 0. i <. data.length. i = 3, index = 4)
  {
  boolean quad = false.
  boolean trip = false.
  int val = (0xFF &. (int) data[i]).
  val <.<.= 8.
  if ((i 1) <. data.length)
  {
  val |= (0xFF &. (int) data[i 1]).
  trip = true.
  }
  val <.<.= 8.
  if ((i 2) <. data.length)
  {
  val |= (0xFF &. (int) data[i 2]).
  quad = true.
  }
  out[index 3] = alphabet[(quad ? (val &. 0x3F) : 64)].
  val >.>.= 6.
  out[index 2] = alphabet[(trip ? (val &. 0x3F) : 64)].
  val >.>.= 6.
  out[index 1] = alphabet[val &. 0x3F].
  val >.>.= 6.
  out[index 0] = alphabet[val &. 0x3F].
  }
  return out.
  }
  /**
  * 将base64编码的数据解码成原始数据
  */
  static public byte[] decode(char[] data)
  {
  int len = ((data.length 3) / 4) * 3.
  if(data.length >. 0 &.&. data[data.length - 1] == =)
  --len.
  if(data.length >. 1 &.&. data[data.length - 2] == =)
  --len.
  byte[] out = new byte[len].
  int shift = 0.
  int accum = 0.
  int index = 0.
  for(int ix = 0. ix <. data.length. ix )
  {
  int value = codes[data[ix] &. 0xFF].
  if(value >.= 0)
  {
  accum <.<.= 6.
  shift = 6.
  accum |= value.
  if(shift >.= 8)
  {
  shift -= 8.
  out[index ] = (byte)((accum >.>. shift) &. 0xff).
  }
  }
  }
  if(index != out.length)
  throw new Error("miscalculated data length!").
  return out.
  }
  static private char[] alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 /=".toCharArray().
  static private byte[] codes = new byte[256].
  static {
  for (int i = 0. i <. 256. i )
  codes[i] = -1.
  for (int i = A. i <.= Z. i )
  codes[i] = (byte) (i - A).
  for (int i = a. i <.= z. i )
  codes[i] = (byte) (26 i - a).
  for (int i = 0. i <.= 9. i )
  codes[i] = (byte) (52 i - 0).
  codes[ ] = 62.
  codes[/] = 63.
  }
  public static void main(String[] args) throws Exception
  {
  //加密成base64
  String strSrc = "林".
  String strOut = new String(Base64.encode(strSrc.getBytes())).
  System.out.println(strOut).
  String strOut2 = new String(Base64.decode(strOut.toCharArray())).
  System.out.println(strOut2).
  }
  }

  2009年9月全国计算机等级考试时间及科目预告

  2009年NCRE考试有新变化

  2009年全国计算机等级考试-大纲

  全国计算机等级考试历年真题及答案

  2009年上半年全国计算机等级考试试题及答案



相关文章


用于Java代码分析的Eclipse插件nWire1.1发布计算机二级考试
base64的java实现方法计算机二级考试
完善的javasocketserver程序计算机二级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛