我即將使用算法對可變長度進行編碼,但非常長字符串從XML文件中檢索字段,然後該編碼數據應該保留在數據庫中。後來,當我收到第二個文件時,我需要從數據庫(先前存儲的)中獲取編碼數據,然後對其進行解碼並使用新數據進行驗證以進行重複。Java中BASE64類的編碼/解碼算法的效率如何?
我試圖org.apache.commons.codec.binary.Base64
類 它有2種方法:
encodeBase64(Byte[] barray)
decodeBase64(String str)
這工作完全正常,解決了我的問題。 但它將55個字符串轉換爲6個字符串。
所以我不知道是否有任何情況下,這些算法編碼2個字符串非常大,只有1個字符不匹配(例如)到相同的編碼字節數組。
我不知道Base64
班,但如果有人能幫助我,這將是非常有益的。
如果你可以建議任何其他的算法,使一個大的字符串短的固定長度和解決我的目的,我會很樂意使用它。
在此先感謝。
任何正確執行的base64會讓一個String較大不小。你想壓縮字符串嗎? – 2011-06-15 09:50:26
是的,實際上我需要一些算法來將一個長的字符串壓縮成一個較小的字符串並存儲在數據庫中,然後使它膨脹以獲得原始字符串。 我通過互聯網看到了ZipOutputStream類的實現,但我沒有嘗試。 – 2011-06-15 09:58:27
我想你正在尋找一個哈希函數,如[MD5](http://en.wikipedia.org/wiki/MD5)(它將所有輸入轉換爲128字節的輸出)。 Base64編碼通常會導致輸出大小爲輸入大小的四分之三,因此根本不會導致定長輸出。 – 2011-06-15 09:58:46