从Ruby脚本中获取Tor中的新标识

时间:2014-12-06 15:02:09

标签: ruby tor

require 'net/telnet'

localhost = Net::Telnet::new("Host" => "localhost", "Port" => "9151", "Timeout" => 10, "Prompt" => /250 OK\n/)
localhost.cmd('AUTHENTICATE hi') { |c| print c; throw "Cannot authenticate to Tor" if c != "250 OK\n" }
localhost.cmd('signal NEWNYM') { |c| print c; throw "Cannot switch Tor to new route" if c != "250 OK\n" }
localhost.close

我正在尝试使用ruby脚本运行Tor时获得新身份,代码取自此答案:https://stackoverflow.com/a/6882744/3192470

我的端口9151,因为我使用 Tor-Bundle
为了获得密码哈希,我在终端中写了tor --hash-password hi,并将16:970D11D59DCAC06E6075BED460511460C1EFD9CECDBB3C96A59298422A返回给我。
我相应地在 torrc 文件中有这一行HashedControlPassword 16:970D11D59DCAC06E6075BED460511460C1EFD9CECDBB3C96A59298422A

当我运行我的Ruby脚本时,我会抛出uncaught throw "Cannot authenticate to Tor"异常。

1 个答案:

答案 0 :(得分:1)

您必须将密码用双引号括起来:

localhost.cmd('AUTHENTICATE "hi"') { |c| print c; throw "Cannot authenticate to Tor" if c != "250 OK\n" }

也就是说,密码是您使用tor --hash-password hi进行哈希处理的密码,但是加上双引号。