python加密功能不起作用

时间:2018-08-21 21:43:44

标签: python encryption aes

我正在尝试使用python编写一个简单的加密功能。每次运行它时,我都会收到一条错误消息,提示“未定义加密”,但确实如此。关于此功能为什么不起作用,请问我能得到一些帮助。非常感谢!!!这是代码:

from Crypto.Cipher import AES
import base64
import os


def encryption (privateInfo):
    BLOCK_SIZE = 16
    PADDING = '{'

    pad = lambda s: s + (BLOCK_SIZE - len(s) % BLOCK_SIZE) * PADDING

    EncodeAES = lambda c, s: base64.b64encode(c.encrypt (pad(s)))

    secret = os.urandom(BLOCK_SIZE) 
    print 'encryption key: ', secret

    cipher = AES.new(secret)

    encoded = EncodeAES(cipher, privateInfo)

    print 'Encrypted string: ', encoded

我得到的错误消息是:

>>> encryption('secret message that nobody should read')
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    encryption('secret message that nobody should read')
NameError: name 'encryption' is not defined

1 个答案:

答案 0 :(得分:0)

我很确定您在语法上遇到的问题是您正在使用print,如下所示:

print 'something'

虽然在Python 2中可以,但在python 3中则没有,因此,如果您使用python 3,则需要使用括号:

print('something')

或者如果您想添加一些内容:

print('key', 'hello')
print('key: %s' %(4))
print('secret: {}, key: {}'.format('lol', '$'))

哪个输出:

keyhello
key: 4
secret: lol, key: $