2015-02-11 76 views
-1

我需要編碼/在數據庫中存儲之前解碼我的數據,但我有奇怪的問題,解碼後,該值是不一樣的第一 例如看看這段代碼爲什麼seedBytes1和seedBytes2是不一樣的? (我試過encodedSeedBytes.getBytes( 「US-ASCII」),而不是encodedSeedBytes但沒有成功)價值是不一樣的

seedBytes = new SecureRandom().generateSeed(16); 
Log.i("LOG", "seedBytes1: " + seedBytes.toString()); // Before encoding 
encodedSeedBytes = Base64.encodeToString(seedBytes, Base64.DEFAULT); 
decodedSeedBytes = Base64.decode(encodedSeedBytes, Base64.DEFAULT); 
Log.i("LOG", "seedBytes2: " + decodedSeedBytes.toString()); // After decoding 

結果:(?爲什麼這2個值是不一樣的)

I/LOG﹕ seedBytes1: [[email protected] 
I/LOG﹕ seedBytes2: [[email protected] 

回答

2

這是一個引用JVM內存中對象的位置,而不是種子本身的值。

According to the documentation generateSeed()返回一個字節[]。

要調用的toString()的字節數組,它只是返回它在內存位置上。

要一個byte []轉換成一個字符串,你可以使用

String s = new String(seedBytes); 
相關問題