This is indeed a good start.
If you have a serious business need on a commercial software it is probably simpler to buy an off the shelf product.
However if you're coding for fun, this a good concept to work on.
The main flaw here is that your software use the same registration key for everybody.
If someone has the key, he could just divulge it on a forum and then everyone has it.
I believe your first task would be to make the key different for two every machine or user.
This way there are no need to hide the key as it can't be copied to another machine anyway.
What I would do is use 2 registry keys:
UserId: pascal324234@gmail.com
RegCode: ASDFSDFSDFSDF
Then you can check the key
string registeredName;
string actualRegistrationCode;
string secretSeed = ":MantuSingh438";
string expectedRegistrationCode = (registeredName + secretSeed).GetHashCode().ToString("x");
if(expectedRegistrationCode == actualRegistrationCode)
{
data=true;
}