2013-09-29 77 views
0

我試圖隨着熵的增加產生大量的16字節的隨機字符串。 通過增加熵我的意思是增加可能選擇的隨機字符的數量,每1000個生成的字符串。 我想將每個字符串存儲在一個文件中,以一種方式,我可以發送每一行openssl進行aes加密(這就是爲什麼16byte)。 這是我的代碼。是對的嗎?隨着熵增加的16字節隨機字符串

file = f=open('/root/randomGenString.txt', 'w') 
for y in xrange(0,256): 
     print "Range", y 
     for x in xrange(0,1000): 
       #print random.randint(0,y) 
       stringa=''.join(chr(random.randint(0,y)) for z in xrange(0,16)) 
       file.write(stringa) 
       file.write("\n") 
file.close() 

回答

3

這幾乎是你想要的,但它不是最好的方式。

首先,有這件事

file.write("\n") 

你認爲stringa自然會包含換行符?因爲用新行來分隔它是沒有意義的。只要放下它並在打開它時使用file.read(16)

還有關於stringa包含換行符的事情。對於在文本模式下打開的文件,\n在Windows上自動翻譯爲\r\n。它被稱爲通用換行,這是一個非常有用的功能。但它會弄亂你的字節。所以你應該用二進制模式打開文件。

當你在它的時候,在webz上查找with statement python

+0

我建議你發佈清理後的代碼。 – martineau