Windows许可证密钥的所有排列


97

我需要为笔记本电脑申请Windows 8升级,为此,我需要笔记本电脑下面的Windows 7许可证密钥。

由于Microsoft无限智慧地决定创建会失效的许可证标签,并且我无法清晰地阅读许可证密钥,这意味着我无法使用自动化过程为Windows升级产品注册笔记本电脑。

通过将笔记本电脑与光线倾斜,我可以验证大部分代码,但是其中几个字母是不明确的(再次感谢Microsoft使用易于误读标签中的字符)。

我有以下(混淆的)许可证密钥,

MPP6R-09RXG-2H[8B]MT-[B8]K[HN]M9-V[6G]C8R

其中方括号内的字符是不明确的,因此它是任一8BB8HN6G

制作16种组合。

使用itertools生成此许可证密钥的可能排列是否合适,还是有更好的方法?

感谢贡献者,我得到了正确的钥匙。检查密钥是否有效的一种非常方便的方法是使用Windows 7产品密钥检查器


11
我认为您可以手工列出16种组合,最终可能会花费更少的时间。
Waleed Khan 2013年

17
这样一个很酷的问题。+1
Flavius

12
我真的希望您更改了一些公认的字符,并且没有在互联网上发布您的真实Windows密钥...
rodrigo

1
嘿,将其发布到codegolf.stackexchange.com
Earlz

4
@rodrigo是的,我混淆了代码:)
Kerridge0

Answers:


165

免责声明:是的,我知道这不是Python代码。它只是出现在我脑海里,我只是不得不把它写下来。

最简单的方法是使用Shell扩展:

$ echo MPP6R-09RXG-2H{8,B}MT-{B,8}K{H,N}M9-V{6,G}C8R
MPP6R-09RXG-2H8MT-BKHM9-V6C8R
MPP6R-09RXG-2H8MT-BKHM9-VGC8R
MPP6R-09RXG-2H8MT-BKNM9-V6C8R
MPP6R-09RXG-2H8MT-BKNM9-VGC8R
MPP6R-09RXG-2H8MT-8KHM9-V6C8R
MPP6R-09RXG-2H8MT-8KHM9-VGC8R
MPP6R-09RXG-2H8MT-8KNM9-V6C8R
MPP6R-09RXG-2H8MT-8KNM9-VGC8R
MPP6R-09RXG-2HBMT-BKHM9-V6C8R
MPP6R-09RXG-2HBMT-BKHM9-VGC8R
MPP6R-09RXG-2HBMT-BKNM9-V6C8R
MPP6R-09RXG-2HBMT-BKNM9-VGC8R
MPP6R-09RXG-2HBMT-8KHM9-V6C8R
MPP6R-09RXG-2HBMT-8KHM9-VGC8R
MPP6R-09RXG-2HBMT-8KNM9-V6C8R
MPP6R-09RXG-2HBMT-8KNM9-VGC8R

8
我知道这不是python代码。它只是突然出现在我的脑海,我喜欢它的想法。无需拒绝这个答案。:-(
Bikeshedder 2013年

不是python,但是仍然是一个漂亮的解决方案。
Yuval Adam

2
+1 ...和Windows(据我所知)没有此“扩展” ...但您可以随时使用Cygwin
Barranka 2013年

55
好吧,Windows可能没有它,但是如果您需要迭代您的Linux许可证密钥。哦,等等,这是我爱linux的另一个原因
Drake Clarris 2013年

1
它不仅简短而有趣,而且还以非常干净的方式为复制和粘贴提供了答案。实际上有第5个变量,而我得到了我的钥匙!我实际上将“写下来”的任务交给了一位同事,他放弃了!非常感谢。
Kerridge0 2013年

59
from itertools import product
for perm in product('8B', 'B8', 'HN', '6G'):
    print 'MPP6R-09RXG-2H%sMT-%sK%sM9-V%sC8R' % perm

17

生成组合的另一种方法

>>> ['MPP6R-09RXG-2H%sMT-%sK%sM9-V%sC8R' % (a, b, c, d)
...  for a in '8B' for b in 'B8' for c in 'HN' for d in '6G']
['MPP6R-09RXG-2H8MT-BKHM9-V6C8R',
 'MPP6R-09RXG-2H8MT-BKHM9-VGC8R',
 'MPP6R-09RXG-2H8MT-BKNM9-V6C8R',
 'MPP6R-09RXG-2H8MT-BKNM9-VGC8R',
 'MPP6R-09RXG-2H8MT-8KHM9-V6C8R',
 'MPP6R-09RXG-2H8MT-8KHM9-VGC8R',
 'MPP6R-09RXG-2H8MT-8KNM9-V6C8R',
 'MPP6R-09RXG-2H8MT-8KNM9-VGC8R',
 'MPP6R-09RXG-2HBMT-BKHM9-V6C8R',
 'MPP6R-09RXG-2HBMT-BKHM9-VGC8R',
 'MPP6R-09RXG-2HBMT-BKNM9-V6C8R',
 'MPP6R-09RXG-2HBMT-BKNM9-VGC8R',
 'MPP6R-09RXG-2HBMT-8KHM9-V6C8R',
 'MPP6R-09RXG-2HBMT-8KHM9-VGC8R',
 'MPP6R-09RXG-2HBMT-8KNM9-V6C8R',
 'MPP6R-09RXG-2HBMT-8KNM9-VGC8R']
>>> 

9

如何同时使用itertools和functools?

>>> from operator import mod
>>> from functools import partial
>>> from itertools import product
>>> map(partial(mod, 'MPP6R-09RXG-2H%sMT-%sK%sM9-V%sC8R'), product('8B', 'B8', 'HN', '6G'))
['MPP6R-09RXG-2H8MT-BKHM9-V6C8R', 'MPP6R-09RXG-2H8MT-BKHM9-VGC8R', 'MPP6R-09RXG-2H8MT-BKNM9-V6C8R', 'MPP6R-09RXG-2H8MT-BKNM9-VGC8R', 'MPP6R-09RXG-2H8MT-8KHM9-V6C8R', 'MPP6R-09RXG-2H8MT-8KHM9-VGC8R', 'MPP6R-09RXG-2H8MT-8KNM9-V6C8R', 'MPP6R-09RXG-2H8MT-8KNM9-VGC8R', 'MPP6R-09RXG-2HBMT-BKHM9-V6C8R', 'MPP6R-09RXG-2HBMT-BKHM9-VGC8R', 'MPP6R-09RXG-2HBMT-BKNM9-V6C8R', 'MPP6R-09RXG-2HBMT-BKNM9-VGC8R', 'MPP6R-09RXG-2HBMT-8KHM9-V6C8R', 'MPP6R-09RXG-2HBMT-8KHM9-VGC8R', 'MPP6R-09RXG-2HBMT-8KNM9-V6C8R', 'MPP6R-09RXG-2HBMT-8KNM9-VGC8R']

1
真好!从来没有想过您也可以使用operator.mod进行字符串格式化。
汤姆(Tom)

使用@MartijnPieters partial时不需要使用format它,因为在不使用*args或调用时它不会改变**kwargs。使用时,format您不能直接传递元组,但需要先将其转换为参数:map(lambda args: 'MPP6R-09RXG-2H{}MT-{}K{}M9-V{}C8R'.format(*args), product('8B', 'B8', 'HN', '6G'))%出于情感原因,我仍然经常使用旧字符串格式化。我真的应该考虑format更频繁地使用该功能。
bikeshedder 2014年

是的,我以某种方式将正在应用的论证描述为*args。我的错。
彼得斯

3

http://www.magicaljellybean.com/keyfinder/

Magical Jelly Bean Keyfinder是一个免费软件实用程序,可从注册表中检索用于安装Windows的产品密钥(cd密钥)。它还具有社区更新的配置文件,该配置文件检索许多其他应用程序的产品密钥。

只需在您想要密钥的安装上运行即可。


2
不幸的是,笔记本电脑上安装的Windows并未使用在笔记本电脑底面可以找到的许可证密钥,而是使用某种企业卷密钥安装的。Microsoft不允许将这些代码用于验证Windows升级。
Kerridge0 2013年

1

如果直接在Windows 7中使用Windows Anytime Upgrade选项,则无需知道许可证密钥是什么。

只要激活了操作系统,Windows 8就会覆盖现有的操作系​​统,并将Windows 7中的所有内容放入“ Windows-old”文件夹,您可以删除该文件夹,除非需要文件或其他内容。

Windows升级过程会寻找已激活的Windows操作系统,即使Windows XP也会在安装升级之前激活它。

通过随时升级进行购买时,将通过电子邮件向您发送Windows 8许可证密钥。如果您从商店购买升级,您将只获得许可证密钥和下载URL,或者将密钥插入Windows Anytime Upgrade,它将自行下载并安装。


正确,但是在发布时,“ Windows升级优惠”需要此代码。对于希望使用COA上的代码重新安装Windows且不再具有制造商的还原分区的用户来说,此过程也可能很有用。
Kerridge0
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.