我想存储一个包装在String对象中的字节数组。这里是场景存储字节数组的Java字符串
- 用户输入密码。
- 该密码的字节是使用getBytes()String方法获取的。
- 使用java的crypo软件包对它们的字节进行了加密。然后
- 这些字节被使用构造新的字符串(字节[])转换成字符串
- 该字符串被存储或以其它方式围绕(不变)通过获得
- 该字符串的字节和它们不同于编码的字节。
下面是描述我在说什么的一段代码。
String s = "test123";
byte[] a = s.getBytes();
byte[] b = env.encrypt(a);
String t = new String(b);
byte[] c = t.getBytes();
byte[] d = env.decrypt(c);
凡env.encrypt()和env.decrypt()做加密和解密。我遇到的问题是,b数组的长度为8,c数组的长度为16,我认为它们是平等的。这里发生了什么?我试图修改代码如下
String s = "test123";
Charset charset = Charset.getDefaultCharset();
byte[] a = s.getBytes(charset);
byte[] b = env.encrypt(a);
String t = new String(b, charset);
byte[] c = t.getBytes(charset);
byte[] d = env.decrypt(c);
但这并没有帮助。
任何想法?
代码示例中的'env'是什么? – 2009-08-18 19:25:28