Todos los "códigos" que ves .. como el caso del CIF, DNI, RUT (para Chile) .. Nº de Tajetas de crédito .. etc usan uno o vários digitos o caracteres alfanuméricos (numero y/o letras) para validar si el número introducido es válido.
El CIF en concreto .. tendrá su algorítmo .. como así lo tienen los demás ejemplos que te he puesto ..
A su vez .. esos "códigos" (repito que dá igual si es un CIF, un DNI, .. un RUT .. etc..) Los gestionará cierto organismo u empresa .. así que en alguna BD estarán .. otra cosa es que sea pública y tu la puedas usar en tus aplicaciones.
El algorítmo para validar un CIF (español) ... lo tienes aquí:
http://www.aulambra.com/ver.asp?id=139
El algoritmo está bastante bien explicado.
Un saludo,