Max*_*sky 4 algorithm google-maps combinatorics
按键总是从“AIzaSy”开始(也许我错了,但我是这样)。接下来是 33 个字符。据我所知,他们使用字母、数字和一些特殊字符。每个字符位置大约有 64 个变体。大约有64^33 个组合(键)~ 401734511064747568885490523085290650630550748445698208825344 个键。
那么为什么他们选择恰好 39 (6+33) 个字符呢?
为什么不选择 20 个字符或 63 个字符?
Ber*_*hur 10
我不了解如何生成 Google Maps API 密钥的具体知识,但如果您想知道从数学角度来看这个字符数如何有意义,请考虑以下内容:
根据观察,密钥以 6 个字符的字符串 AIzaSY 开头。如果你仔细观察,你可能还会发现第7个字符并不是完全随机的。事实上,它似乎通常是字母表开头的大写字符(A、B、C、D...)。所以这表明这个角色也有一些特殊的地位,或许编码了一些额外的信息。就我们的目的而言,这并不重要,但重点是,由于该字符显然不是随机的,因此它不能是加密生成的密钥的一部分。
因此,在 7 个字符的前缀之后,我们还剩下39 - 7 = 32 个字符。正如您所观察到的,这些字符似乎是Base64编码的。现在,在 Base64 中,每个字符占用 6 位,因此我们有32 * 6 = 192位(或24字节),这是密码学中密钥长度的通用标准之一,并且比128等提供了更好的安全性-位密钥(另一个标准)。