Letzteres ist das Problem.
Angenommen du willst nicht HTTPS benutzen, was das einfachste, aber auch entweder teuerste oder benutzerunfreundlichste wäre. Dann müsstest du die Daten mit Javascript oder einer anderen Scriptsprache im Browser verschlüsseln. Und das... naja, sagen wir viel Spaß. Wie das dann Code-technisch aussieht, wage ich mir nicht auszumalen.
Davon abgesehen ist diese Vorgehensweise nicht zwangsläufig die beste, da sie nicht gegen MITM Attacken resistent ist (ebensowenig wie unsignierte HTTPS Zertifikate natürlich). Und eben nicht nur ungemein unkonventionell sondern auch unpraktisch. Also willst du wahrscheinlich HTTPS, da möchte ich dich einfach mal auf CAcert verweisen (auch wenn die nicht viel besser sind als unsignierte Zertifikate...)