Очистка сектора путем заполнения всех блоков данных нулями - это прекрасно. Другого способа удаления данных на картах MIFARE Classic нет.
Просто убедитесь, что вы не перезаписываете трейлер сектора (последний блок в каждом секторе) нулями, так как это приведет к недопустимым битам доступа (что, в свою очередь, сделает сектор постоянно недоступным). Я полагаю, это то, что вы пытаетесь достичь с
if ((index + 1) % 4 != 0)
но помните, что, например, MIFARE Classic 4K имеет большие сектора, где трейлер не является 4-м блоком данных сектора.