ruby中的python crypt.crypt?

时间:2009-12-04 21:04:39

标签: python ruby

嗨,我需要在ruby中使用此代码我不知道如何在ruby中编写crypt.crypt方法,有什么想法吗?

(我想模拟linux命令.htpasswd)

import random
import crypt

letters = 'abcdefghijklmnopqrstuvwxyz' \
          'ABCDEFGHIJKLMNOPQRSTUVWXYZ' \
          '0123456789/.'
salt = random.choice(letters) + random.choice(letters)

password = "bla"

print crypt.crypt(password, salt)

2 个答案:

答案 0 :(得分:3)

乔丹已经告诉过你关于String#crypt的信息,所以我只会告诉你一个更简单的方法来创建你的字母数组:

letters = [*'a'..'z'] + [*'A'..'Z'] + [*0..9] + %w(/ .)

更新:,因为这已经超过2年后投票,我不妨添加1.9方式(使用多个splats和字符文字):

letters = [*?a..?z, *?A..?Z, *0..9, ?/, ?.]

答案 1 :(得分:1)

我相信Ruby的String#crypt等同于Python的crypt.crypt,因此Ruby代码与您的代码类似:

letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/.'
salt = letters[rand letters.length].chr + letters[rand letters.length].chr

password = "bla"

puts password.crypt(salt)