本文介绍了使用 ruby 生成格式为/etc/shadow 的 SHA512 crypt-style hashes?的处理方法,对大家解决问题具有一定的参考价值
问题描述
I want to generate SHA512 hashed passwords for inclusion directly into a /etc/shadow file for use with chef's user resource. Normally I'd go to the stdlib's Digest
library for this, but it doesn't generate the hash in the right format:
ruby-1.9.2-p136 :001 > require 'digest/sha2'
=> true
ruby-1.9.2-p136 :002 > Digest::SHA512.hexdigest('test')
=> "ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff"
The format that the shadow file wants is:
$6$/ShPQNXV$HJnibH9lw01qtYqyJQiBf81ggJB2BGUvKA7.kv39HGCeE.gD4C/SS9zAf5BrwOv3VJzvl99FpHYli9E8jykRC0
Things I've looked at:
- The openssl "dgst" module returns the same format as .hexdigest, and its "passwd" module doesn't include SHA512 support.
- String#crypt, but that does not support SHA512. (edit: this is only the case on OSX - modern Linux distros will work if you specify "$6$somesalt" as the salt)
- ruby-crypt gem, but it does not support SHA512
For comparison, something that does return the proper format is PHP's crypt, but I'd rather not have to exec out to PHP for something that should be simple.
解决方案
After further research:
The mkpasswd command, which on debian is in the whois
package (weird):
mkpasswd -m sha-512
String#crypt does actually call the platform's native crypt() call, however OSX (up to 10.6) does not include support for alternate ciphers. "password".crypt('$6$somesalt') will work on Linux platforms.
这篇关于使用 ruby 生成格式为/etc/shadow 的 SHA512 crypt-style hashes?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,WP2
我一直试图在网上搜索如何在SketchUp中使用rubygems,但一直没有找到具体的方法。下面是我在C:programfilesgoogle SketchUp 8中的插件插件宝石.rb:$: (eval):14C:/Ruby186/lib/ruby/1.8/thread.rb:5C:/Ruby186/lib/ruby/site_ruby/1.8/rubygems.rb:11:in require\"C:/Ruby186/lib/ruby/site_ruby/1.8/rubygems.rb:11(eval)...
日期:2021-06-29 00:00:03
浏览:759
有人能帮我吗?现在我正在Sketchup中开发一个关于构建模拟的插件。可以显示阴影,但如何使用ruby API计算其面积。阴影通常描述不完整的照明(半阴影),如曲面侧面的阴影渐变。如果要测量一个区域,可能需要完整的阴影。阴影不是SketchUp实体或绘图元素。它们正在渲染输出,不能(直接)通过API访问。请参阅此处的解决方案50,将阴影绘制为面(但是会修改用户模型),然后对这些面的面积求和。请记住,嵌套组件可以按比例缩小/变换(或向上),因此面区域看起来比实际大小更大(更小)。在这种情况下,使用第二个参数来...
日期:2021-08-19 22:00:05
浏览:830
嗨,我是一个RubyonRails应用程序,我想在我的应用程序中集成sketchup。如果可能,请分享这些步骤或一些文档链接。不完全可能。谷歌SketchUp(Google SketchUp)在2012已不复存在,不再受支持。(谷歌把它卖给Trimble Navigation,Inc.)SketchUp、SketchUp Make和SketchUp Pro(由@Last、谷歌和Trimble发布)的所有版本都是桌面应用程序。这些版本的EULA 1禁止在服务器环境中使用,并明确禁止将SketchUp转授给其他...
日期:2021-08-28 11:00:05
浏览:983
我正在尝试为室内设计师和家具制造商编写一个插件来维护橱柜数据库。所有关于橱柜的信息都将存储在MySql数据库中。在将它们插入模型之前,将根据我编写的适当类在Ruby中创建它们的实例。其思想是:要在Ruby中创建文件柜的实例,在那里处理它们,并且只在Sketchup中绘制为类:Sketchup::Group。当然,我需要Ruby中的实例和Sketchup中的绘图之间的链接。我的问题是:如何/在哪里存储用Ruby创建的实例,以便在重新加载模型后可用和创建。您做过类似的事情吗??在Ruby中创建的实例已经存储在模...
日期:2021-09-17 13:00:03
浏览:580
如果任何两个组件相互接触,那么我可以使用哪个功能来检查它??对于API没有精确的冲突检测方法。这在过去被要求……- Ruby API类别搜索:\"冲突检测\"请参阅这些找到的主题以讨论解决方法。qwertyuiop:相互接触可能您还应该指定更确切地说,哪一个意思是\"触摸\"?图像603×545 12.1 KB...
日期:2021-09-19 19:00:05
浏览:662
本文介绍了如何使用 selenium-webdriver (ruby) 使用相同的浏览器窗口进行自动化测试?的处理方法,对大家解决问题具有一定的参考价值 问题描述 我正在使用 ruby 中的 selenium-webdriver 和 cucumber 为网站自动化测试用例.我需要每个功能以特定的顺序运行并使用相同的浏览...
日期:2022-06-28 02:00:31
浏览:575
本文介绍了使用 ruby 生成格式为/etc/shadow 的 SHA512 crypt-style hashes?的处理方法,对大家解决问题具有一定的参考价值 问题描述 I want to generate SHA512 hashed passwords for inclusion directly into a /...
日期:2022-07-11 04:00:26
浏览:570
本文介绍了therubyracer 安装错误的处理方法,对大家解决问题具有一定的参考价值 问题描述 如下所示,libv8 可以正常安装,但 rubyracer 不能.我使用的是 Mac 10.7.4.As you can see below, libv8 installs fine, but therubyracer ...
日期:2022-07-19 06:00:35
浏览:791
本文介绍了“在任何存储库中都找不到有效的 gem"(rubygame 等)的处理方法,对大家解决问题具有一定的参考价值 问题描述 我一直在尝试安装这个rubygame"gem,但每当我使用命令时I've been trying to install this 'rubygame' gem for some time, bu...
日期:2022-07-25 11:00:26
浏览:717
本文介绍了安装 pg gem 失败,“mkmf.rb 找不到 ruby 的头文件"(Mac OSX 10.6.5)的处理方法,对大家解决问题具有一定的参考价值 问题描述 我刚刚升级到 Rails 3,在 MacPorts、gem 和数据库方面有些混乱需要整理.我扔掉了所有的宝石并重新安装它们.除了 pg gem 的要求...
日期:2022-08-12 21:00:35
浏览:825