问题标签 [product-key]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
12936 浏览

algorithm - 创建许可证密钥的安全算法?

我想分发一个应用程序,但有他们可以输入解锁的许可证密钥。什么是创建简洁密钥的好算法,该密钥包含有关他们购买的版本的信息,以及许可证期限等其他内容。

我意识到这种保护可以被破解,但它让诚实的人保持诚实。我可能会也可能不会实现在线激活,但我主要关心生成这些密钥的好方法。

这种情况我们都见过,什么算法效果最好?我应该询问用户的明文名称并使用它根据他们自己的信息创建唯一的产品密钥吗?

是否有一个系统可以用来使生成有效密钥几乎不可能?

也许是公钥/私钥对加密情况,只有制造商拥有私钥,并且可以通过公钥验证数据,但无法劫持公钥以创建有效密钥。

由于这是一个产品密钥,如果它相当短,64 个字符或最多 128 个字符会很棒,但越短越好,32 或更少会很棒。

0 投票
3 回答
18200 浏览

sql-server-2005 - SQL Server 2005 光盘密钥

我需要获取已安装的 SQL Server 2005 实例的 cd 密钥。我使用了以下代码,但它不起作用,很可能是因为我认为它适用于 SQL Server 2000。请帮助。

0 投票
1 回答
3627 浏览

c++ - 从产品密钥确定 vista/windows 7 操作系统版本的算法

我们必须为无人参与的 vista/windows 7 安装自动创建 XML 文件,我们在其中写入产品密钥(MAK 类型)。不幸的是,Windows 映像包含多个版本(家庭版、家庭高级版、专业版、终极版),因此我们需要决定应该使用哪个版本并将该信息也写入 XML。我们希望能够动态决定使用哪个版本。

是否有任何公共算法/方法可以像 Windows 设置一样从产品密钥确定操作系统版本?最好在 C/C++ 中。

编辑: 问题不是确定某个图像支持哪些版本 - 这可以通过查看目录文件来完成sources\install_*.clg

EDIT2: 我发现了一些(奇怪的)工具,例如 Microsoft PIDX Check 和 Windows 7 Product Key Checker。这些使用相同pidgenx.dll。pkeyconfig.xrm-msof 作为 windows 系统本身。除其他外,它可用于确定:

  • Windows 的版本。
  • 解锁和激活的功能。
  • 许可证的分发渠道。
  • 许可证类型。
  • 激活操作系统的方法。
  • 确定是否应接受激活的唯一标识符。

但是对密钥的评估需要很长时间。

0 投票
3 回答
4971 浏览

c# - 应用授权和激活思路

我最近开发了一个应用程序,打算卖给小企业。我没有大量现金支持,所以我不愿意购买可以保护我的软件免遭盗窃的商业应用程序。

我目前的计划如下:

  • 我在应用程序中包含了公钥 (pgp) 或文字代码。
  • 用户从提供某些信息的网站上购买软件。
  • 该站点调用一个创建产品密钥的函数。此密钥在购买后通过电子邮件发送/显示给用户。
  • 用户下载产品后,他们必须输入一些信息以及提供的产品密钥才能尝试激活。
  • 该应用程序联系我们托管位置的 Web 服务。它使用加密和其他信息来创建一个发送回应用程序的激活码。
  • 将来,应用程序将定期检查 Web 服务以确定它是否被授权。
  • 不知何故,我想在软件更新期间更新 pgp/代码,所以我可能需要一个函数来解密信息、更新许可证、重新加密,然后更新服务数据库。

所以我想知道:

  1. 这是正确的方法还是现在已经过时了?
  2. 生成唯一产品密钥的最佳方法是什么?
  3. 有没有办法让公钥/私钥完全脱离客户端的 PC?
  4. 有没有检测非法许可证的好方法?我计划只提供站点范围的许可证,所以我只需要检测邪恶的一点点 torrent/irc 人。

预先感谢您的帮助。不胜感激。

0 投票
1 回答
227 浏览

php - 如何“关闭”用于商业用途的 php 脚本?

可能重复:
PHP - 保护代码

我已经为一个客户建立了一个 php“管理”站点,它具有一些对他们的业务非常有用的特定功能。所以我决定和客户一起把这个后台软件卖给其他公司。

如何关闭这个 php 站点,以便购买它的客户只能安装一次并使用密钥验证它?另外,他们可以只复制所有文件和数据库并将其提供给其他人吗?

将 php 站点作为 SaaS 关闭的技术有哪些?

0 投票
3 回答
81 浏览

security - 检查机器数量

我想就以下问题寻求建议:

如果希望使用否,则在创建产品密钥时。密钥是为机器制造的,就像在微软批量许可的情况下一样,如何做到这一点,以便在 dll 中轻松验证,该 dll 用于验证在安装程序中输入的密钥并说明密钥是否用于说100 台机器如何离线验证产品密钥在第 101 台计算机上不起作用。

谢谢,

0 投票
1 回答
4479 浏览

registry - 使用 WMI 的 Microsoft 产品许可证密钥

我一直在徒劳地寻找一个 WMI 脚本,它允许我检索用于安装在机器上的 Microsoft 产品的产品许可证密钥(例如 xxxxx-xxxxx-xxxxx-xxxx-xxxxx)。这包括诸如 Sharepoint、SQL Server 和 Exchange 之类的产品,但我似乎能够找到的只是用于检索实际 Windows 许可证密钥的脚本。

到目前为止我尝试过的(必须是 WMI,所以请不要使用 powerscript):

  1. 尝试了 win32_product 类,但我感兴趣的字段(productid)在 windows2003 上不存在,我有一个混合(30% 到 70%)windows 2008 与 windows 2003 服务器
  2. 尝试去注册表,但产品密钥没有标准化的位置,由此产生的解决方案将非常“讨厌”,但如果这是我不得不考虑的唯一方法

这样做的原因:我必须检查大量(> 200 台机器)并列出每台机器上用于上述 Microsoft 产品的许可证以进行审计。

任何帮助将不胜感激,即使是可以为我指明正确方向的资源。或者,如果 Microsoft 有能够做到这一点的产品,我也会对此感兴趣,但一等奖将是 WMI 脚本。

0 投票
1 回答
99483 浏览

visual-studio - 如果我不是企业,如何获得 Visual Studio Express Desktop 2012 的产品密钥?

我已经使用 VS Express 2012 快一个月了,现在它说我必须输入产品密钥才能继续使用它。要获得该产品密钥,我被要求注册。只有在创建 Microsoft 帐户(很好,另一个要跟踪的帐户)之后,它才会通知我必须输入有关我的公司、地址、员工和我在其中的角色的详细信息。
个人或业余爱好者有没有办法使用 Express,还是仅适用于企业?有没有办法在不输入虚假商业信息的情况下获得产品密钥(或者虚假信息是对令人沮丧的表格的标准回应)?

0 投票
1 回答
788 浏览

php - Magento 序列号

当有人购买产品时,我正在使用“ModifyMage Solutions”中的“序列号”来发送序列号。

有人知道如何在付款时发送序列号吗?不是在结账时,因为这很简单,而是在付款时?

提前感谢

0 投票
2 回答
796 浏览

c# - 对于使用 Web 服务的序列号激活来说,这是一个好的概念吗?

我正在 WPF 中编写一个 Windows 桌面应用程序。我需要添加一个激活过程,想知道我是否有正确的想法

这是我正在考虑实施的过程。这会是最好的解决方案吗

  • 当用户加载应用程序时,它会检查其中包含激活码的注册表项

需要激活

  • 如果注册表中没有激活密钥,则会为他们提供激活页面
  • 他们将在这里输入激活密钥,他们将从我们这里收到
  • 当用户点击激活时,我得到他们的硬盘序列号并对其进行哈希处理
  • 然后我连接到一个我写过的网络服务来检查——密钥是否存在——是否有分配给它的 HDD 串行哈希——它是否处于活动状态
  • 如果它通过了所有这些标准,我会通过网络服务使用 HDD 序列更新我的数据库并将其标记为活动

已经激活(带有激活密钥的注册表项)

  • 获取其硬盘的序列号并对其进行哈希处理
  • 从注册表中检索密钥
  • 连接到 Web 服务以检查密钥是否存在、是否仍然处于活动状态并分配给正确的 HDD 哈希
  • 如果是我允许用户继续
  • 如果没有,那么我会完全删除注册表项,并通知他们需要重新激活软件,然后加载激活页面。

除了想知道这是否是正确的方法之外,我还有一些额外的担忧:

需要保护网络服务用户在启动程序时需要能够访问互联网,以便我可以检查网络服务

任何人都可以提供的任何建议将不胜感激。我在那里找不到任何答案。