If it was me I would just serialize the form and call the controller method with AJAX. If you do a post the query string won't be visible to the user. After the AJAX call is successful you can forward them on to the next page you want them on. I have included some example code to do use this method.
var formInfo = $("#FormName").serialize();
$.ajax({
type: "POST",
url: "ControllerMethod",
data: formInfo,
error: function (xhr, ajaxOptions, thrownError) {
},
success: function (data) {
}
});
Other than that I am not sure of a way to encrypt the URL. The browser needs to be able to interpret the URL to know which page to go to so I don't think this will be possible. But I could be wrong.
You could also encrypt the individual values then pass them in the URL that way. That would take a lot of work though. You would need to call a method on the server to encrypt each value entered than store the encrypted value in the form some where. The reason I say to encrypt on the server is because client side code is downloaded to the computer so anyone would have access to it and see how you were doing the encryption.
Hope this helps.