这几天都很郁闷,被byte数组转换成string搞的。
有一个小程序,需要把byte数组转换成string,然后写文件,再读文件,再把string转换回来,成为byte数组。可是,看上去很简单,编出程序来一编译,通过..其实有玄机...特别是你要用到它(byte[]的内容)加密,解密时,就会报异常。至少我的会。出的异常是: javax.crypto.BadPaddingException: Given final block not properly padded
上网找了很久,说法很多。自己搞了很久...终于搞定。
上网找了很久,说法很多。自己搞了很久...终于搞定。
具体做法:
将byte数组转换成string
BASE64Encoder enc=new BASE64Encoder();
String 转换后的string=enc.encode(byte数组);
将string转换回来成为byte数组:
BASE64Decoder dec=new BASE64Decoder();
try {
byte数组 = dec.decodeBuffer(转换后的string);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
BASE64Encoder enc=new BASE64Encoder();
String 转换后的string=enc.encode(byte数组);
将string转换回来成为byte数组:
BASE64Decoder dec=new BASE64Decoder();
try {
byte数组 = dec.decodeBuffer(转换后的string);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
问题解决。心情高兴!
当然,还有很多好文章。给一点链接:
http://gagaghost.itpub.net/post/25/283173