嗨,我需要在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)
答案 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)