El algoritmo de módulo 11 es un mecanismo simple de control útil para verificar que un dato está bien digitado. Mediante un cálculo se le asigna al número una cifra verificadora entre 0 y 10 que se debe digitar al final. Así al número 1 se le asigna el 9 y al 2 el 7, por lo tanto al digitar 1-9 tenemos bastantes probabilidades de que la digitación es correcta ( 10 de 11 ), pero si se digita 1-5 sabemos con seguridad que es una mala digitación.
El algoritmo consiste en multiplicar las cifras desde la última a la primera por 2, 3, 4, 5, 6, y 7 repectivamente, si el número es largo se repite la serie
ej:
+---+---+---+---+---+---+---+---+ +---+ | 4 | 1 | 2 | 6 | 1 | 5 | 3 | 3 | - | ? | +---+---+---+---+---+---+---+---+ +---+ | | | | | | | | x3 x2 x7 x6 x5 x4 x3 x2 | | | | | | | | =12 =2 =14 =36 =5 =20 =9 =6
Luego los resultados individuales se suman y ese resultado se divide por 11, siendo el resto o módulo de esta operación el digito verificador, por lo tanto será un número entre 0 y 10. En el caso de muchos sistemas el 10 es sustituido por la letra K (esto es lo que hacemos acá ya que es el uso común en Chile), una explicación más detallada la puedes encontrar en wikipedia.
Acá el código que puedes descargar desde Github se trata de una versión remozada del publicado en mi blog chisposo, ahora puedes elegir que digito devolver cuando el resto de la división final es 10. Esta versión está en producción en el generador de ruts válidos que puedes usar para tus proyectos.
function getMod11Dv( $num, $retorno_10='K' ){
/* ----------------------------------------- */
$digits = str_replace( array( '.', ',' ), array( ''.'' ), strrev($num ) );
if ( ! ctype_digit( $digits ) )
{
return false;
}
$sum = 0;
$factor = 2;
for( $i=0;$i<strlen( $digits ); $i++ )
{
$sum += substr( $digits,$i,1 ) * $factor;
if ( $factor == 7 )
{
$factor = 2;
}else{
$factor++;
}
}
$dv = 11 - ($sum % 11);
if ( $dv < 10 )
{
return $dv;
}
if ( $dv == 11 )
{
return 0;
}
return $retorno_10;
}

Cuando se inició la computación la corrección de los errores de digitación requería mucho tiempo y esfuerzo por lo que algoritmos como el de módulo 11 eran mucho más relevantes que lo que ahora nos pueden parecer.