Tôi dần dần tính toán MD5 băm của một tệp lớn, trong khi tải lên, tại một thời điểm nào đó, tôi muốn lưu vào HTML5 localStorage
những gì tôi đã tính toán cho đến thời điểm này để tiếp tục sau.Tiết kiệm trạng thái CryptoMD5 của CryptoJS dưới dạng chuỗi và khôi phục sau
Từ những gì tôi biết, localStorage
có thể lưu chuỗi, vì vậy tôi phải lưu trữ giá trị MD5 tiến bộ dưới dạng chuỗi và sau đó khôi phục chúng, khi người dùng mở trình duyệt sau.
Về cơ bản mã của tôi trông như thế này:
var md5_full = CryptoJS.algo.MD5.create();
var wordArray = CryptoJS.lib.WordArray.create(chunk);
md5_full.update(wordArray);
Tại thời điểm này, tôi muốn chuyển đổi md5_full
thành một chuỗi, để có thể tiết kiệm đến localStorage
. Và sau đó, sau đó, khi người dùng muốn tiếp tục tải lên, để có thể truy xuất md5_full
từ localStorage
, hủy rút gọn và tiếp tục cập nhật nó với các đoạn.
Cuối cùng, tôi có thể gọi md5_full.finalize();
để nhận bản tóm tắt băm MD5 đầy đủ cuối cùng.
Tôi đang cố gắng để sử dụng https://github.com/hunterloftis/cryo (CryoJs) để xâu chuỗi và sau đó phân tích lại. Nhưng phương thức update() chẳng hạn, nó không có trong đối tượng, mà đúng hơn là tôi phải gọi md5_full. $ Super. $ Super.update() ... vì vậy CryptoJS đang sử dụng một số cơ chế thừa kế không được khôi phục đúng cách – StefanH
mã cho stringify và phân tích cú pháp trở lại là: md5_full_str = Cryo.stringify (md5_full); md5_full_restored = Cryo.parse (md5_full_str); Sau đó, md5_full_restored.update() không có sẵn như mô tả ở trên – StefanH