我有一个字符串列表,我使用AES加密来加密每个字符串并将它们存储在不同的列表中。
当我打印整个列表时,可以看到所有加密的字符串。但是在尝试访问单个字符串时,输出是不同的。造成这种情况的原因是什么?
这是代码
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“¹
答案 0 :(得分:1)
print
会在每个元素上调用__repr__
,而字符串上的print
会调用__str__
>>> '&\x8cj\xbay\x93\xb9'.__str__()
&îj║yô╣
>>> '&\x8cj\xbay\x93\xb9'.__repr__()
'&\x8cj\xbay\x93\xb9'
这样:
>>> print '&\x8cj\xbay\x93\xb9'
&îj║yô╣
而
>>> print ['&\x8cj\xbay\x93\xb9']
['&\x8cj\xbay\x93\xb9]