RoR - MD5代

Mit*_*ran 76 ruby hash md5 digest

如何在Rails 3.0中使用MD5加密字符串? pass = MD5.hexdigest(pass) 在模型中产生uninitialized constant MyModel::MD5

jos*_*chi 171

您可以使用Digest::MD5Ruby标准库来实现此目的.

irb(main):001:0> require 'digest/md5'
=> true
irb(main):002:0> Digest::MD5.hexdigest('foobar')
=> "3858f62230ac3c915f300c664312c63f"
Run Code Online (Sandbox Code Playgroud)

还有一件事:MD5是一种哈希算法.您不使用哈希算法"加密"任何内容.

  • 还有一件事:MD5基本上已被打破(在加密意义上),不应再使用了.如果您启动一个新的软件项目,请使用更强大的哈希算法,如SHA512或bcrypt,并且不要忘记在对它们进行哈希处理之前为您的密码添加一个盐. (14认同)
  • MD5因加密目的而中断,但仍可用于比较文件.毕竟Git仍然使用它.但是"不要用MD5来保持密码." (7认同)
  • `摘要:: MD5.hexdigest('foobar')`工作 (2认同)
  • Git 使用 SHA1 来满足几乎所有的散列需求。 (2认同)
  • 如果要将密码存储到数据库中,请使用bcrypt,而不是MD5.两者都可以作为Ruby库使用,从实现的角度来看,两者都同样容易,但是在不太可能的情况下你的数据库被泄露(这是在存储之前散列密码的全部要点),bcrypt将比md5更难破解,因此总是一个更好的选择.别忘了加盐. (2认同)