2016-04-14 62 views
0

我有一個字符串列表,我使用AES加密來加密每個字符串並將它們存儲在不同的列表中。訪問python中加密列表的各個元素

當我打印整個列表時,可以看到所有加密的字符串。但是當試圖訪問單個字符串時,輸出是不同的。這是什麼造成的?

下面是代碼

from Crypto.Cipher import AES 

keywords = ['country', 'state', 'nation', 'area'] 
i = 0 
encryptlist = [] 

while i < len(keywords): 
    obj = AES.new('samplekey1234567',AES.MODE_CFB,'sampleiv12345678') 
    encryptlist.append(obj.encrypt(keywords[i])) 
    i = i+1 

print encryptlist 
print encryptlist[0] 

這是輸出的樣子

['&\x8cj\xbay\x93\xb9', '65\xfe\xf9s', '+\n\xe1\xa8\xdd~', '$tI\xc7'] 

&Œjºy「¹ 

回答

1

print名單上的每個元素調用__repr__,而print在一根繩子上呼籲__str__

>>> '&\x8cj\xbay\x93\xb9'.__str__() 
&îj║yô╣ 

>>> '&\x8cj\xbay\x93\xb9'.__repr__() 
'&\x8cj\xbay\x93\xb9' 

so:

>>> print '&\x8cj\xbay\x93\xb9' 
&îj║yô╣ 

>>> print ['&\x8cj\xbay\x93\xb9'] 
['&\x8cj\xbay\x93\xb9] 
+0

更好的答案比我的,所以我把它:) – Bahrom

+0

偉大的答案。我從來不知道這一點。我還是新來的python。謝謝,它真的幫助... – sanjay