Windows 라이선스 키의 모든 순열


97

랩톱 밑면에 Windows 7 라이선스 키가 필요한 랩톱 용 Windows 8 업그레이드를 신청해야합니다.

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 제품 키 검사기를 사용하는 것 입니다.


11
16 개의 조합을 손으로 나열 할 수 있으며 결국에는 시간이 덜 걸릴 수 있습니다.
Waleed Khan

17
멋진 질문입니다. +1
Flavius ​​2013 년

12
... 난 정말 당신이 인식 된 문자의 일부를 변경 것으로 기대하고 인터넷에서 당신의 진짜 Windows 키를 게시하지 않습니다
로드리고

1
훗,에 게시물에 대한 매우 흥미로운 질문 했 codegolf.stackexchange.com
Earlz

4
@rodrigo 예, 코드를 난독 처리했습니다. :)
Kerridge0

답변:


165

면책 조항 : 예, 이것이 Python 코드 가 아니라는 것을 알고 있습니다. 그냥 내 마음에 튀어 나는 간단 했다 그것을 적어.

가장 간단한 방법은 셸 확장을 사용하는 것입니다.

$ 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
나는 이것이 파이썬 코드가 아니라는 것을 알고 있습니다. 그것은 내 마음에 떠 올랐고 나는 그것에 대한 아이디어를 좋아했습니다. 이 답변에 반대 할 필요가 없습니다. :-(
bikeshedder 2013 년

그럼에도 불구하고 파이썬은 아니지만 아름다운 솔루션입니다.
Yuval Adam

2
+1 ... 그리고 Windows (내가 아는 한)에는이 "확장"이 없습니다 ...하지만 Cygwin을 항상 사용할 수 있습니다
Barranka 2013 년

55
그럼 윈도우가이 없을 수 있지만, 당신이 이제까지 반복해야하는 경우 리눅스 라이센스 키 .. 오 또 다른 이유 I 사랑 리눅스의 그 잠깐
드레이크 Clarris

1
짧고 달콤 할뿐만 아니라 복사하여 붙여 넣기에 대해 매우 깔끔한 방식으로 답변을 제공했습니다. 실제로 5 번째 변수가 있었고 키를 받았습니다 !! 나는 실제로 동료에게 "기록하기"작업을 주었고 그는 포기했습니다! 감사합니다.
Kerridge0

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**kwargsformatmap(lambda args: 'MPP6R-09RXG-2H{}MT-{}K{}M9-V{}C8R'.format(*args), product('8B', 'B8', 'HN', '6G'))%format
bikeshedder 2014 년

예, 어떻게 든 적용되는 주장을 *args. 내 실수.
Martijn Pieters

3

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

Magical Jelly Bean Keyfinder는 레지스트리에서 창을 설치하는 데 사용되는 제품 키 (cd 키)를 검색하는 프리웨어 유틸리티입니다. 또한 다른 많은 애플리케이션의 제품 키를 검색하는 커뮤니티 업데이트 구성 파일도 있습니다.

키를 원하는 설치에서 실행하십시오.


2
불행히도 랩톱에 설치된 Windows는 랩톱 밑면에있는 라이센스 키를 사용하지 않고 일종의 회사 볼륨 키를 사용하여 설치됩니다. Microsoft는 Windows 업그레이드의 유효성을 검사하는 데 이러한 코드를 사용하는 것을 허용하지 않습니다.
Kerridge0

1

Windows Anytime Upgrade 를 사용하는 경우Windows 7 내에서 직접 옵션 라이선스 키가 무엇인지 알 필요가 없습니다.

운영 체제가 활성화되어있는 한 Windows 8은 기존 운영 체제를 덮어 쓰고 Windows 7의 모든 항목을 "Windows-old"폴더에 저장합니다. 파일이나 다른 것이 필요하지 않으면 삭제할 수 있습니다.

Windows 업그레이드 프로세스는 정품 인증 된 Windows 운영 체제를 찾습니다. Windows XP도 업그레이드를 설치하기 전에 정품 인증을 받으면됩니다.

Anytime Upgrade를 통해 구매할 때 Windows 8 라이선스 키를 이메일로 받게됩니다. 상점에서 업그레이드를 구매하는 경우 라이선스 키와 다운로드 URL 만 받거나 Windows Anytime Upgrade에 키를 연결하기 만하면 자동으로 다운로드 및 설치됩니다.


정확하지만 게시 할 때 "Windows 업그레이드 제안"을 위해이 코드가 필요했습니다. 이 프로세스는 COA의 코드를 사용하여 Windows를 다시 설치하고 제조업체의 복원 파티션이 더 이상없는 사용자에게도 유용 할 수 있습니다.
Kerridge0 2013
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.