Javascript (ES5), 6765
This is CRC24 shaved down to 140 Bytes. Could golf more but wanted to get my answer in :)
function(s){c=0xb704ce;i=0;while(s[i]){c^=(s.charCodeAt(i++)&255)<<16;for(j=0;j++<8;){c<<=1;if(c&0x1000000)c^=0x1864cfb}}return c&0xffffff}
Validator in node.js:
var col = new Array(16777215);
var n = 0;
var crc24_140 =
function(s){c=0xb704ce;i=0;while(s[i]){c^=(s.charCodeAt(i++)&255)<<16;for(j=0;j++<8;){c<<=1;if(c&0x1000000)c^=0x1864cfb}}return c&0xffffff}
require('fs').readFileSync('./dict.txt','utf8').split('\n').map(function(s){
var h = crc24_140(s);
if (col[h]===1) {
col[h]=2;
n+=2;
} else if (col[h]===2) {
n++;
} else {
col[h]=1;
}
});
console.log(n);