Showing posts with label encryption. Show all posts
Showing posts with label encryption. Show all posts

Friday, April 30, 2010

Password Encryption through javascript

hii

in my site in admin panel was wanted to do the password encryption of ruby on rails so i got some resources for it and implemented like this,

first my form of login is like this..
  <%= javascript_include_tag('rsa/jsbn', 'rsa/prng4', 'rsa/rng', 'rsa/rsa', 'rsa/base64', :cache => true) %>


 <% form_tag session_path, :id => 'login' do -%>

Please Login

<%= text_field_tag :username, params[:username] %>


<%= password_field_tag :upassword, params[:upassword] %>

<%= hidden_field_tag :password, '' %>

<%= submit_tag 'Log in' %>
<% end -%>
  <%= hidden_field_tag :public_modulus, @public_modulus %>
<%= hidden_field_tag :public_exponent, @public_exponent %>

Two things to note here. First, we are including the four necessary JavaScript libraries on this page only. Second, we use a hidden field to store/commit the password – this field is populate via JavaScript.

and in the controoller :::::::::
 def new
key = OpenSSL::PKey::RSA.new(1024)
@public_modulus = key.public_key.n.to_s(16)
@public_exponent = key.public_key.e.to_s(16)
session[:key] = key.to_pem
end
def create
key = OpenSSL::PKey::RSA.new(session[:key])
password = key.private_decrypt(Base64.decode64(params[:password]))
user = User.authenticate(params[:username], password)
if user
reset_session # reset session after login
session[:user_id] = user.id
flash[:notice] = "Welcome back, #{user.username}"
redirect_to admin_url
else
flash[:error] = 'Invalid username/password entered'
new and render :action => 'new'
end
end


http://iamjosh.wordpress.com/2008/03/18/encrypting-login-password-without-ssl-in-ruby-on-rails/