1. A method for securing data transmitted between a client device and a server comprising: obtaining, by an intermediate module, input text sent from said client device to the server; processing said input text at the intermediate module to obtain processed text, wherein said processing comprises: when the input text is not to be searchable by the server, transforming the input text non-deterministically or a combination of deterministically and non-deterministically, using at least one key to obtain processed text; and when the input text is to be searchable by the server, transforming said input text deterministically, using at least one key to obtain processed text, and including a statistically significant feature in the processed text, the feature including a rarely used character or group of characters; and transmitting the processed text to the server.