我整天都在看这个。我可能应该在几个小时前离开它;在这一点上,我可能会遗漏一些明显的东西。
简短版本:有没有办法生成一个非对称加密的哈希并将其归结为合理数量的明确、人类可读的字符?
长版:
我想为我的软件生成许可证密钥。我希望这些键具有合理的长度(25-36 个字符),并且易于被人类阅读和输入(因此避免使用数字 0 和大写字母 O 之类的模棱两可的字符)。
最后——这似乎是关键——我真的很想使用非对称加密来增加生成新密钥的难度。
我有一个通用的方法:将我的信息(用户名、产品版本、盐)连接成一个字符串并从中生成一个 SHA1() 哈希,然后用我的私钥加密这个哈希。在客户端上,使用相同的信息构建 SHA1() 哈希,然后使用公钥解密许可证并查看是否匹配。
由于这是一个 Mac 应用程序,我查看了 AquaticPrime,但它会生成一个相对较大的许可证文件而不是字符串。如果必须,我可以使用它,但作为用户,我真的很喜欢我可以阅读和打印的许可证密钥的便利性。
我还查看了确实生成密钥的 CocoaFob,但它太长了,无论如何我都想将它作为文件传递。
我用 OpenSSL 玩了一会儿,但想不出任何合理长度的东西。
所以......我在这里遗漏了一些明显的东西吗?有没有办法生成一个非对称加密的哈希并将其归结为合理数量的明确的、人类可读的字符?
我愿意购买解决方案。但我在许多不同的平台上工作,所以我想要一些便携的东西。到目前为止,我所看到的一切都是特定于平台的。
非常感谢您的解决方案!
PS - 是的,我知道它仍然会被破解。我试图想出一些合理的东西,作为用户,我仍然会觉得很友好。