Наскоро попаднах на алгоритъма Rsync и си помислих да го внедря с помощта на java. Една от важните части на този алгоритъм е Rolling Checksum от страната на подателя.
В http://en.wikipedia.org/wiki/Rsync е обяснено, че
"ако някой вече е изчислил подвижната контролна сума на байтове 1-25, може да изчисли > подвижната контролна сума на байтове 2-26 единствено от предишната контролна сума (R), байт 1 (n) и > байт 26 (n+S )."
Мога да генерирам контролна сума за файл или низ, като използвам MD5 или SHA. Но исках светлина върху този ред как можем да го приложим.