在python中访问加密列表的各个元素

时间:2016-04-14 15:02:27

标签: python encryption

我有一个字符串列表,我使用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“¹

1 个答案:

答案 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]