我想存儲一個包裝在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