The solution that converts data to varbinary and then to bigint appears to have a major limitation. Anytime you run through this conversion with more than 8 characters you risk ending up with the same bigint. Data is being truncated with this conversion.
For example these queries both return the same result:
select convert(bigint,convert(varbinary(255),'This is a very long string that will end up being the same as the previous one. VALUE001'))