El funcionamiento es bastante sencillo, aunque explicarlo llevaría algún tiempo.
Básicamente troceo la cadena por los (;) y luego esos trozos los vuelvo a separar por los (:) para comparar unos con otros y sumarlos si todos coinciden.
Lo de la longitud no creo que te dé problemas. De todos modos experimenta por si se vuelve demasiado lento con muchos registros (a mí me preocupaba que fuesen 500 o mas).
A mí lo que realmente me preocupa es... que pronto vendrás a pedirme el descompresor
Saludos.