There is a fix for cold callers. You don't need to be rude. Just explain what you believe and they go away. It doesn't take long.
"I have a personal policy where I never give money out to cold callers, sorry." If they persist, which none have to date: "Please don't try to talk me into compromising my values." Any further and you say "I think you are being rude now, I am hanging up."
Do the same thing with door to door sales people. Except the hang up bit - replace that with closing the door.
Please don't feed these people. Starve them of their market and they will have to go get real jobs. Or starve and die. Either way is fine by me.