参加2013年的全国信息安全大赛的时候,系统功能中有一个要求将密钥编写进二维码中,但是查阅资料可以知道二维码说白了就是一个能够存储字符串的一个特殊图形,因此要将密钥变成字符串,密钥是byte[]类型,字符串在java中是String,这就需要把byte数组转换成string,然后写文件,再读文件,再把string转换回来,成为byte数组。可是,看上去很简单,编出程序来一编译,通过..其实有玄机...特别是你要用到它(byte[]的内容)加密,解密时,就会报异常。
具体做法:
将byte数组转换成string
将string转换回来成为byte数组:
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();
}