1

如 RFC2289 (S/KEY) 中所示,将十六进制字符串转换为可读格式时必须使用的单词列表。

我该怎么做呢?

RFC 提到:

因此,一次性密码被转换为六个短(1 到 4 个字母)英文单词的序列并被接受。每个单词都是从 2048 个单词的字典中选出的;每个字 11 位,所有一次性密码都可以被编码。

阅读更多: http: //www.faqs.org/rfcs/rfc1760.html#ixzz0fu7QvXfe

这是否意味着将十六进制转换为十进制,然后将其用作单词数组的索引。另一件事可能是使用文本编码,例如 1111 可能等于 UTF-8 编码中的 dog

在此先感谢您的帮助!

4

1 回答 1

1

无需转换为十进制。如果您的十六进制值是字符串,只需将其转换为数字(例如,使用Integer.valueOf(value, 16))。然后使用该数字查找单词。如果您可以将整个字典存储在内存中,请使用该数字作为索引。如果您无法将其存储在内存中,请使用它来控制您查看字典文件的深度(如果每个项目都在单独的行上,则将那么多行读入文件中)。如果您在某处有数据库,请使用该数字作为表的键并按键选择。

于 2010-02-18T16:55:50.690 回答