我正在努力实现的目标:我的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脚本而不是配置所有垃圾。
答案 0 :(得分:0)
我会记录这样的请求:
$requests{$user} = {
key_for => "donkus",
token => "2FrNGk7QoCKQecIz",
ts => time(),
};
这样,如果用户重新请求身份验证,那么旧的身份就会被破坏。
我要么使用ts
字段来定期过期身份验证请求,要么使用$user
标识符的LRU缓存来限制正在使用的请求数。如果我真的很关心,我会做两件事:拥有相对较高的LRU缓存限制(比如说100个请求)和相对较低的超时(可能是2分钟)。
当来自$user
的消息进来时,我会看到它们是否与%requests
中的凭据匹配。如果是这样,他们就进去了。如果没有,他们就会离开。