Вы не могли итерировать или хранить больше данных, чем длина вашего массива. В этом случае вы можете сделать так:
for (int i = 0; i <= name.length - 1; i++) {
// ....
}
Или это:
for (int i = 0; i < name.length; i++) {
// ...
}
Этот ответ на подобный вопрос предлагает метод для выполнения этого. Существуют также библиотеки, которые сделают это для Вас, как CryptoJS
, суть - Вы, заполняют Ваш файл 0 байтами для достижения определенной длины, которая является делимой длиной блока, затем Вы считываете данные в буферный блок блоком, и имеет те данные. Затем Вы добавляете тот хеш для каждого блока, который Вы читаете.