Accès sécurisé: chiffrement à clé publique en PHP et Javascript

Je suis en train de faire un "normal" nom d'utilisateur/mot de passe formulaire de connexion sécurisée, sans avoir besoin de HTTPS. Mon idée est la suivante:

  • Serveur génère une paire de clés pour une sorte d'algorithme de chiffrement assymétrique. Il stocke cette paire de clés dans une table temporaire de toutes sortes (ou peut-être le local des données de session).
  • Serveur envoie le formulaire au client et inclut la clé publique.
  • Utilisateur remplit le formulaire.
  • Avant d'être envoyé au serveur, Javascript crypte le mot de passe à l'aide de la clé publique.
  • Formulaire est envoyé.
  • Serveur déchiffre le mot de passe avec sa clé privée (qu'il obtient à partir de la table temporaire, à l'aide de la clé publique pour le trouver).

Ce que j'ai besoin de savoir pour cela est:

  • Méthode de chiffrement qui est le meilleur à utiliser? RSA?
  • Comment décrypter le mot de passe en PHP?
  • Et probablement la plus difficile, comment puis-je faire Javascript crypter le mot de passe?
  • Toujours utiliser SSL/TLS avec des certificats valides. Si vous avez des raisons autres que la sécurité du réseau de chiffrer la connexion (tels que la prévention de côté de serveur de mot de passe debug/arrêt/normal/etc. exploitation forestière, qui peuvent ensuite être récupérés par un attaquant), vous pouvez utiliser ceci: stackoverflow.com/questions/12457234/...