6
如何保存MessageDigest對象的內部狀態,以及如何保存內部狀態?我想將它保存在數據庫中,所以只能使用原始數據,如String
,int
,byte[]
。如何將MessageDigest內部狀態保存到數據庫中?
我想要實現的目標是能夠接收一個碎片文件(在很長一段時間內),將所有碎片保存在數據庫中,並在收到最後一個碎片後驗證文件的SHA512摘要而不會得到備份之前保存在數據庫中的所有數據。
所以基本上我想是這樣的:
MessageDigest md = MessageDigest.getInstance("SHA-512");
// restore previous internal state of md
md.update(dataSegment);
// save internal md state
其實是否保存內部SHA狀態?這將是512位純態加上當前輸入長度加上當前不完整塊IIRC。因此一般情況下大約200字節。 –
對不起,遲到的迴應;)但我可以證實,這是可行的使用建議的XStream技術。 @qarma生成的xml大小約爲12kB,但它仍然可以成爲一個更好的解決方案,用於少量MB塊的文件。 – MJar