Unfortunately, I wouldn't call this a secure method because even inexperienced reverse engineers can bypass this without much code. An experienced reverse engineer can decipher(and emulate) any packet encryption without too much effort.
I recommend using dynamic keys sent from the server to update the original key(it would be updated both serversided and clientsided). A method such as this can be done without too much work, but each user connection must have its own key.
However, this is a good method for keeping the majority of packet hacks out of your game if you are a smaller pserver. I really recommend at least using an original static crypt on the CRC key though. I mean, a hacker can copy-paste this into their packet editor code and grab the ELF_KEY variable from cheat engine's memory viewer easily.
The reason client-sided antihacks can't be public(the source at least) is because it makes them much easier to be defeated.