SORU
20 EYLÜL 2011, Salı


Yüksek kalite, basit rastgele şifre üretici

Çok basit, yüksek (şifreleme) kaliteli bir rasgele şifre üreteci oluşturma ilgileniyorum. Daha iyi bir yolu bunu yapmak için vardır?

import os, random, string

length = 13
chars = string.ascii_letters   string.digits   '!@#$%^&*()'
random.seed = (os.urandom(1024))

print ''.join(random.choice(chars) for i in range(length))

CEVAP
20 EYLÜL 2011, Salı


Şifreleri ile zor şey onları yeterince güçlü ve hala onları hatırlamak mümkün kılmaktır. Eğer şifre bir insan tarafından hatırlanmıyor değilse, o zaman gerçekten bir şifre değildir.

Kullandığınız Python os.urandom(): çok iyi. Herhangi bir pratik amaç için bile şifreleme, os.urandom() çıkış gerçek alea ayırt edilemez. O zaman kullandığınız gibi tohumu random, hangisi daha iyi: tek bir sigara-PRNG şifreleme ve çıkış görülebilir bir yapı olan değil de kasada bir istatistiksel ölçme aracı, ama olabilir istismar ederek akıllı bir saldırgan. os.urandom() ile birlikte çalışması gerekir. Daha basit: uzunluğu bir alfabe 64, örneğin, harfler (büyük ve küçük harf), rakamlar ve iki ekstra noktalama karakterleri seçin (' ve '/'). ' gibi Sonra, her şifre karakter, bir byte os.urandom(), azaltmak değeri modül 64 (bu tarafsız çünkü 64 böler 256) ve sonuç olarak dizin chars dizi.

Uzunluğu alfabe ile 64, karakter başına entropi 6 bit (çünkü 2 . elde ^sup>6= 64). Böylece, 13 karakter, entropi 78 bit olsun. Bu da sonuçta, her durumda güçlü, ama zaten çok güçlü (ay sayılır bir bütçe ve dolar, sadece milyonlarca değil milyarlarca mağlup olabilir).

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • EmperorTigerstar

    EmperorTiger

    14 EYLÜL 2009
  • Paulo Bautista

    Paulo Bautis

    21 Aralık 2008
  • The Verge

    The Verge

    8 AĞUSTOS 2006