Javascript 在触发Rails表单标签提交操作之前,如何将MD5应用于密码?
我是Rails新手 我正在用户控制器中使用has_secure_密码。我意识到它应用blowfish来安全地存储密码,但我希望在密码离开浏览器客户端之前对其进行加密。如果这意味着密码被加密了两次,那对我来说没关系 那么,在下面这样一个简单的登录表单中,在提交表单之前,如何调用我已经拥有的Javascript函数来将MD5应用于密码?当然-我可以发送“标准”HTML和onSubmit javascript调用,但肯定有一种方法可以做到这一点,即“Rails方式”。怎么做 提前谢谢Javascript 在触发Rails表单标签提交操作之前,如何将MD5应用于密码?,javascript,ruby-on-rails,md5,Javascript,Ruby On Rails,Md5,我是Rails新手 我正在用户控制器中使用has_secure_密码。我意识到它应用blowfish来安全地存储密码,但我希望在密码离开浏览器客户端之前对其进行加密。如果这意味着密码被加密了两次,那对我来说没关系 那么,在下面这样一个简单的登录表单中,在提交表单之前,如何调用我已经拥有的Javascript函数来将MD5应用于密码?当然-我可以发送“标准”HTML和onSubmit javascript调用,但肯定有一种方法可以做到这一点,即“Rails方式”。怎么做 提前谢谢 <h1&g
<h1>Log In</h1>
<%= form_tag sessions_path do %>
<div class="field">
<%= label_tag :email %><br />
<%= text_field_tag :email, params[:email] %>
</div>
<div class="field">
<%= label_tag :password %><br />
<%= password_field_tag :password %>
</div>
<div class="actions"><%= submit_tag "Log In" %></div>
<% end %>
更新:
似乎没有“Rails方式”可以做到这一点,因此根据Samar的建议,我只是在显式地为表单提供id之后,使用jQuery向表单单击事件添加了一个侦听器。下面是包含更改和打字更正的完整代码段。请注意,我正在使用自己的MD5库
<h1>Log In</h1>
<%= form_tag sessions_path, :id => 'user_login_form' do %>
<div class="field">
<%= label_tag :email %><br />
<%= text_field_tag :email, params[:email] %>
</div>
<div class="field">
<%= label_tag :password %><br />
<%= password_field_tag :password %>
</div>
<div class="actions"><%= submit_tag "Log In" %></div>
<% end %>
<script type="text/javascript">
$("#user_login_form").click(function(){
$("#password").val(EncryptMD5($("#password").val()));
});
</script>
从下载cryptojs。如果您的密码字段具有id password,提交按钮具有id form\u submit。然后执行以下操作:
<script type="text/javascript" src="crypto.js">
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js">
<script>
$("#form_submit").click(function){
$("#password").val(CryptoJS.MD5($("#password").val()));
});
</script>
谢谢我本来希望有一个更“Rails-way”的解决方案,但这当然行得通。我会根据你的回复用我的解决方案更新原始帖子。你真的不应该把密码散列委托给客户。正如Eric所暗示的,这应该是服务器端。