That's how the key verification in Half-Life GOTY works. def keyVerify(key="YouLikeBoysDon'tYou?80085-2137-2137") -> bool: # example key assert(len(key) <= 0x40) key = [x for x in key if '0' <= x <= '9'] assert(len(key) == 0xd) acc = 3 for i in range(0xc): acc += int(key[i]) ^ (acc << 1) is_valid = (acc % 10) == int(key[0xc]) return is_valid So as you can see the code only cares about numbers, it skips other character. The key is valid if (acc % 10) == int(key[0xc]), so we have like 1 in 10 chance to just guess the key. Btw some reddit user states that "The cd keys used to be stamped on the outside of the box" which is kinda funny.