POE :: Component :: IRC,如何在请求后预测某个动作?

时间:2015-04-02 18:19:15

标签: perl rsa irc poe

我正在努力实现的目标:我的PoCo :: IRC机器人要求您使用RSA密钥签名消息,但每次识别时消息都有一个随机字符串(有点像#bitcoin-otc's gribble bot,但使用RSA而不是比特币。)

我希望它能说出类似的话 <mybot> With the key for 'donkus', sign the message '2FrNGk7QoCKQecIz', pass through base64.需要预测签名邮件的到达。然后我可以用base64中的签名消息回复,它将使用脚本中的硬编码公钥进行验证(可能使用Crypt :: RSA)。这种交换将通过私人消息进行。

这样我就可以创建一堆机器人在我的EFnet频道上播放,是的我知道我可以使用Eggdrop但是我很快就会编写自己的perl脚本而不是配置所有垃圾。

1 个答案:

答案 0 :(得分:0)

我会记录这样的请求:

$requests{$user} = {
  key_for => "donkus",
  token   => "2FrNGk7QoCKQecIz",
  ts      => time(),
};

这样,如果用户重新请求身份验证,那么旧的身份就会被破坏。

我要么使用ts字段来定期过期身份验证请求,要么使用$user标识符的LRU缓存来限制正在使用的请求数。如果我真的很关心,我会做两件事:拥有相对较高的LRU缓存限制(比如说100个请求)和相对较低的超时(可能是2分钟)。

当来自$user的消息进来时,我会看到它们是否与%requests中的凭据匹配。如果是这样,他们就进去了。如果没有,他们就会离开。