I want to register a domain for my hosted website and hosted e-mail. I am concerned that if i provide personal info my data will be used by spammers, identity thieves. or other attackers.
I don't want to disclose personal info even to domain registrant. What should i do? Should I just provide fake info into registration form? Or what else?
Should I just provide fake info into registration form?
Certainly not. If you read all fine prints in the contract between you and the registrar you will choose to buy the domain, contract that will reference also the contract between the registrar and the registry, you will always see clauses akin to:
"Providing false information is ground for domain name cancellation".
Your only course is to find a trusted third party. This can be someone you know, the registrar, or a third party.
For example you can ask one of your friend to register the domain for you. Problem though: in case of any disputes, your friend will be deemed the owner of the domain, not you. So you need to use a trusted friend,
Or you use a trusted registrar (and no one here or elsewhere can tell you which registrar to trust or not, this is a highly subjective matter that moves in space and time). Many (most?) of them provide (sometimes for free, sometimes as a paying addon, again, read the fine print) a proxy/privacy service.
With such a service, they will basically list other information instead of your personal data. Note that the registrar still has your personal data and will feel compelled to disclose it anytime there is a dispute on your domain. But the registry will not have it. Even if the registrar does not provide that you can find third parties to replace you in such way. Again, of course, you need to trust them. For different reasons but same results, some big companies sometimes let their lawyers register domain names instead of themselves directly so that new domains (that could disclose in fact just with their name some future new service/product by the company) do not appear linked to them.
In some TLDs, specifically ccTLDs, and even more in the wake of the GDPR, there is an option to protect individuals and not display them in whois. In that case the registrar has your personal data, and the registry has it too, but the registry will not disclose it in whois queries. For that to work typically the registrar needs, upon domain name registration, to send the appropriate "flag" to tell the registry you are an individual and hence the data should not be disclosed.
So in short your question is too vague and will at least depend on which TLD you are interested in, and you will need to shop around to find the perfect registrar for your use case that is accredited in this TLD. But providing false information is never the good way to handle that.