Microsoft产品和其他产品通常具有5组5个字符的产品密钥,如下所示:
ABCDE-12345-ABCDE-12345-VWXYZ
产品如何知道密钥是否有效?某种密码学?如果我想在我的代码中使用这种产品密钥,是否有库?
答案 0 :(得分:5)
您可能希望了解如何实现序列号验证功能的this article。它还涉及一些先进的技术,例如如何保持密钥,泄漏密钥等等。
简而言之,这种密钥通常有三个基础字段:
通过仅在代码中执行部分验证数据检查,您可以执行“正确验证”(在这种情况下,其余验证发生在您的服务器上)或通过检查验证的不同子集来锁定密钥新版本中的数据。
答案 1 :(得分:2)
特别是对于Microsoft产品,可以获得一些知识。
Windows XP上的产品密钥使用自定义字母表进行base24编码。它由一个序列号(源代码称为"原始产品密钥")和一个数字签名组成。 source
Windows 8及更高版本的产品密钥在软件专利申请WO 2012067888 A1中有一些文档。它仍然是base24编码的(act 57 et seq。,实际上意味着' N'的位置被用作解码的第一个字符)。它的要点是Windows 8及以上产品密钥有这些部分:
答案 2 :(得分:0)
确认密钥有四种方法。
根据您从microsoft获得的产品,他们使用上述前3种机制之一。例如,他们的操作系统通常是电话回家;但他们的开发工具要么已经关键,要么进行算法比较。他们的一些旧操作系统用于执行算法。
有一个修改过的选项3,但这只是让应用程序手机每隔一段时间就回家,通常是基于某些事件。在OS的情况下,MS使其验证输入的产品密钥以用于某些Windows更新和其他产品下载。此外,根据许可证密钥本身,它可能每月一次打电话回家。作为旁注,中国有一个IE6安装基础的原因。
第四种选择也可以被规避。通常,破解者只会修补您的产品以绕过执行硬件检查的代码部分。