问题:Windows许可证密钥的所有排列
我需要为笔记本电脑申请Windows 8升级,为此,我需要笔记本电脑下面的Windows 7许可证密钥。
由于Microsoft无限智慧地决定创建会失效的许可证标签,并且我无法清晰地阅读许可证密钥,这意味着我无法使用自动化过程为Windows升级产品注册笔记本电脑。
通过将笔记本电脑与光线倾斜,我可以验证大部分代码,但是其中几个字母是不明确的(再次感谢Microsoft使用易于误读标签中的字符)。
我有以下(混淆的)许可证密钥,
MPP6R-09RXG-2H[8B]MT-[B8]K[HN]M9-V[6G]C8R
其中方括号内的字符是不明确的,因此它是任一8
或B
,B
或8
,H
或N
,6
或G
。
制作16种组合。
使用itertools生成此许可证密钥的可能排列是否合适,还是有更好的方法?
感谢贡献者,我得到了正确的钥匙。检查密钥是否有效的一种非常方便的方法是使用Windows 7产品密钥检查器。
回答 0
免责声明:是的,我知道这不是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
回答 1
from itertools import product
for perm in product('8B', 'B8', 'HN', '6G'):
print 'MPP6R-09RXG-2H%sMT-%sK%sM9-V%sC8R' % perm
回答 2
生成组合的另一种方法
>>> ['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']
>>>
回答 3
如何同时使用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']
回答 4
http://www.magicaljellybean.com/keyfinder/
Magical Jelly Bean Keyfinder是一个免费软件实用程序,可从注册表中检索用于安装Windows的产品密钥(cd密钥)。它还具有社区更新的配置文件,该配置文件检索许多其他应用程序的产品密钥。
只需在您想要密钥的安装上运行即可。
回答 5
如果直接在Windows 7中使用Windows Anytime Upgrade选项,则无需知道许可证密钥是什么。
只要激活了操作系统,Windows 8就会覆盖现有的操作系统,并将Windows 7中的所有内容放入“ Windows-old”文件夹,您可以删除该文件夹,除非需要文件或其他内容。
Windows升级过程会寻找已激活的Windows操作系统,即使Windows XP也会在安装升级之前激活它。
通过随时升级进行购买时,将通过电子邮件向您发送Windows 8许可证密钥。如果您从商店购买升级,您将只获得许可证密钥和下载URL,或者将密钥插入Windows Anytime Upgrade,它将自行下载并安装。