1. A method of encrypting a data stream, comprising the steps of: providing a web browser running on a client; providing an application server; providing a communication channel between the client and the server; providing a data stream comprising an unencrypted text string m, which string is further comprised of unencrypted text characters having numerical representations, m i ; providing a public client key (n, e) and a server session ID string, wherein at least the public client key and session ID string are generated by the server; and converting the unencrypted text string m into a cipher-text string c using a salt key s, a public-key algorithm, and the public client-key, wherein the salt key s is formed from the server session ID string, wherein converting the unencrypted text string m into the cipher-text string c comprises: rolling the salt key s derived from the session ID string and determining a corresponding ASCII decimal value of a next successive alphanumeric character in the session ID string as a next salt value s i ; encrypting each next unencrypted text character m i to a corresponding cipher-text value c i =(mâ€² i ) e mod n where an interim cipher-message element mâ€² i =m i +s i , if s i is an even value and mâ€² i =m i âˆ’s i , if s i is an odd value; storing the cipher-text value c i as a next element of the cipher-text string c in memory; skipping, during the creation of the next salt value, s i , any non-alphanumeric characters within the session ID string; and transmitting the cipher-text string c from memory when an end of the unencrypted text string m is reached.