首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >python加密函数不起作用

python加密函数不起作用
EN

Stack Overflow用户
提问于 2018-08-22 05:43:44
回答 1查看 543关注 0票数 -1

我正在尝试用python写一个简单的加密函数。每次运行它时,我都会收到一条错误消息,显示“未定义加密”,但它确实定义了。我能得到一些关于为什么这个函数不工作的帮助吗?非常感谢!代码如下:

代码语言:javascript
复制
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

我得到的错误信息是:

代码语言:javascript
复制
>>> 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
EN

回答 1

Stack Overflow用户

发布于 2018-08-22 06:12:39

我很确定你在语法上遇到的问题是你使用print的方式是这样的:

代码语言:javascript
复制
print 'something'

虽然这在Python 2中是可以的,但在python 3中不是这样的,所以如果你使用python 3,你需要使用括号:

代码语言:javascript
复制
print('something')

或者,如果你想添加一些东西:

代码语言:javascript
复制
print('key', 'hello')
print('key: %s' %(4))
print('secret: {}, key: {}'.format('lol', '$'))

以下哪项输出:

代码语言:javascript
复制
keyhello
key: 4
secret: lol, key: $
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51957095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档