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