Semua permutasi dari kunci lisensi Windows

97

Saya perlu mengajukan permohonan peningkatan versi Windows 8 untuk laptop saya, yang memerlukan kunci lisensi Windows 7 di bagian bawah laptop.

Karena Microsoft memutuskan dengan kebijaksanaan tak terbatas mereka untuk membuat label lisensi yang rusak, dan saya tidak dapat membaca kunci lisensi saya dengan jelas, itu berarti saya tidak dapat mendaftarkan laptop saya untuk penawaran peningkatan windows menggunakan proses otomatis.

Dengan memegang laptop pada sudut cahaya, saya telah dapat memverifikasi sebagian besar kode tetapi beberapa hurufnya ambigu (sekali lagi terima kasih Microsoft karena menggunakan karakter yang mudah salah membaca di label Anda).

Saya memiliki kunci lisensi berikut (dikaburkan),

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

di mana karakter dalam tanda kurung siku ambigu, jadi bisa jadi 8atau B, Batau 8, Hatau N, 6atau G.

Membuat 16 kombinasi.

Apakah tepat untuk menghasilkan permutasi yang mungkin dari kunci lisensi ini menggunakan itertools atau adakah cara yang lebih baik?

Saya mendapat kunci yang benar berkat kontributor. Cara yang sangat mudah untuk memeriksa apakah kunci tersebut valid adalah dengan menggunakan pemeriksa kunci produk Windows 7 .

Kerridge0
sumber
11
Saya pikir Anda bisa membuat daftar enam belas kombinasi dengan tangan, yang mungkin pada akhirnya membutuhkan waktu lebih sedikit.
Waleed Khan
17
Pertanyaan yang sangat keren. +1
Flavius
12
Saya sangat berharap Anda mengubah beberapa karakter yang dikenali dan Anda tidak memposting kunci Windows asli Anda di Internet ...
rodrigo
1
Heh, akan menjadi pertanyaan yang sangat menarik untuk dikirim ke codegolf.stackexchange.com
Earlz
4
@rodrigo Ya saya mengaburkan kode :)
Kerridge0

Jawaban:

165

Penafian: Ya, saya tahu bahwa ini bukan kode Python . Itu muncul begitu saja di benak saya dan saya harus menuliskannya.

Cara paling sederhana adalah menggunakan ekspansi cangkang:

$ 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
bikeshedder
sumber
8
Saya tahu bahwa ini bukan kode python. Itu baru saja muncul di benak saya dan saya menyukai gagasan itu. Tidak perlu meremehkan jawaban ini. :-(
bikeshedder
Bukan python, tapi tetap solusi yang bagus.
Yuval Adam
2
+1 ... dan Windows (sejauh yang saya tahu) tidak memiliki "perluasan" ini ... tetapi Anda selalu dapat menggunakan Cygwin
Barranka
55
Windows mungkin tidak memilikinya, tetapi jika Anda perlu mengulang kunci lisensi Linux Anda .. oh tunggu, itulah alasan lain saya menyukai linux
Drake Clarris
1
Tidak hanya pendek dan manis, tetapi juga memberikan jawaban dengan cara yang sangat bersih untuk disalin dan ditempel. Sebenarnya ada variabel ke-5, dan saya mendapatkan kunci saya !! Saya benar-benar memberikan tugas "tuliskan" kepada seorang rekan kerja, dan dia menyerah! Terima kasih banyak.
Kerridge0
59
from itertools import product
for perm in product('8B', 'B8', 'HN', '6G'):
    print 'MPP6R-09RXG-2H%sMT-%sK%sM9-V%sC8R' % perm
Yuval Adam
sumber
17

Cara lain untuk menghasilkan kombinasi

>>> ['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']
>>> 
Nick Dandoulakis
sumber
9

Bagaimana jika menggunakan itertools dan functools secara bersamaan?

>>> 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']
bikeshedder
sumber
1
Bagus! Tidak pernah terpikir oleh saya bahwa Anda dapat menggunakan operator.mod untuk melakukan pemformatan string juga.
Tom
@MartijnPieters partialtidak diperlukan saat menggunakan formatkarena tidak ada perubahan apa pun saat dipanggil tanpa *argsatau **kwargs. Bila menggunakan formatAnda tidak bisa lewat tuple langsung tetapi perlu mengubahnya ke argumen pertama: map(lambda args: 'MPP6R-09RXG-2H{}MT-{}K{}M9-V{}C8R'.format(*args), product('8B', 'B8', 'HN', '6G')). Saya masih banyak menggunakan %format string lama karena alasan sentimental. Saya benar-benar harus mempertimbangkan untuk menggunakan formatfungsi lebih sering.
bikeshedder
Ya, entah bagaimana saya membayangkan argumen yang diterapkan sebagai *args. Kesalahanku.
Martijn Pieters
3

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

Magical Jelly Bean Keyfinder adalah utilitas freeware yang mengambil Kunci Produk (kunci cd) yang digunakan untuk menginstal windows dari registri Anda. Ini juga memiliki file konfigurasi yang diperbarui oleh komunitas yang mengambil kunci produk untuk banyak aplikasi lain.

Jalankan saja pada instalasi yang Anda inginkan kuncinya.

Paul Collingwood
sumber
2
Sayangnya, Windows yang diinstal di laptop tidak menggunakan kunci lisensi yang terdapat di bagian bawah laptop, tetapi diinstal menggunakan semacam tombol volume perusahaan. Microsoft tidak mengizinkan kode ini digunakan untuk memvalidasi upgrade windows.
Kerridge0
1

Jika Anda menggunakan opsi Windows Anytime Upgrade langsung dari dalam Windows 7, maka Anda TIDAK perlu tahu apa kunci lisensinya.

Selama sistem operasi diaktifkan maka Windows 8 hanya akan menimpa sistem operasi yang ada dan menempatkan semuanya dari Windows 7 ke dalam folder "Windows-lama" yang dapat Anda hapus kecuali Anda memerlukan file atau sesuatu.

Proses peningkatan Windows mencari sistem operasi Windows yang diaktifkan, bahkan Windows XP akan melakukannya asalkan diaktifkan sebelum menginstal peningkatan.

Anda akan dikirimi email kunci lisensi Windows 8 saat membeli melalui Peningkatan Kapan Saja. Jika Anda membeli pemutakhiran dari toko, Anda hanya akan mendapatkan kunci lisensi dan URL unduhan ATAU Anda cukup mencolokkan kunci ke Windows Anytime Upgrade dan itu akan mengunduh dan menginstal sendiri.

phpMedler
sumber
Benar, namun pada saat memposting kode ini diperlukan untuk "Penawaran Peningkatan Windows". Proses ini juga dapat berguna bagi mereka yang ingin menginstal ulang windows menggunakan kode pada COA, dan tidak lagi memiliki partisi pemulihan pabrik.
Kerridge0