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

  • DeAdPiXel6667

    DeAdPiXel666

    2 Ocak 2010
  • TastyTuts | Creative video tutorials by Gareth David

    TastyTuts |

    6 Temmuz 2011
  • The Platform

    The Platform

    14 HAZİRAN 2006