Python 获取异常:TypeError:new()缺少1个必需的位置参数:';模式';
我想用AES加密来加密我的数据,我以前做过,但在我的笔记本电脑中,这种方法不起作用,并且给了我同样的错误,有没有办法修复它? 代码如下:Python 获取异常:TypeError:new()缺少1个必需的位置参数:';模式';,python,encryption,aes,pycryptodome,Python,Encryption,Aes,Pycryptodome,我想用AES加密来加密我的数据,我以前做过,但在我的笔记本电脑中,这种方法不起作用,并且给了我同样的错误,有没有办法修复它? 代码如下: from Crypto.Cipher import AES def paddedKey(key): while len(key)%8!=0: key +=' ' return key def paddingText(text): while len(text)%16!=0: text +=' '
from Crypto.Cipher import AES
def paddedKey(key):
while len(key)%8!=0:
key +=' '
return key
def paddingText(text):
while len(text)%16!=0:
text +=' '
return text
data = paddingText(input('Enter text to encrypt - '))
key = paddedKey(input('Enter key between 16-32 charachters - '))
if(len(key)<=16 & len(key)>=32):
print('Key must me between 16 and 32 charachters')
cipher = AES.new(key)
ciphertext = cipher.encrypt(data)
# print(ciphertext)
# print(ciphertext.decode('cp855'))
print('Encrypted text = ',ciphertext)
从加密密码导入AES
def paddedKey(钥匙):
而len(key)%8=0:
键+=''
返回键
def paddingText(文本):
而len(text)%16=0:
文本+=''的
返回文本
data=paddingText(输入('输入要加密的文本-'))
key=paddedKey(输入('Enter key介于16-32字符之间-'))
如果(长度(键)=32):
打印('键必须介于16和32个字符之间')
密码=AES.new(密钥)
ciphertext=cipher.encrypt(数据)
#打印(密文)
#打印(密文解码('cp855'))
打印('加密文本=',密文)
但这段代码给了我一个错误:
回溯(最近一次呼叫最后一次):
文件“C:\Users\shati\Desktop\Python\Research\AES\u Extended.py”,第18行,在
密码=AES.new(密钥)
TypeError:new()缺少1个必需的位置参数:“mode”
我正在使用pythone版本:Python3.6.8Pip版本:Pip 20.1.1
PycryptoDome版本:PycryptoDome 3.9.8
从错误中可以明显看出,
新的
方法需要两个参数
检查这个
您必须将mode参数传递给AES.new
函数。并使用相同的模块名(Crypto
)进行冲突,但pip允许您同时安装这两个模块
我安装了
pycrypto
,它不需要参数mode
,但我安装的其他库需要pycrptodome
,它是在我不知情的情况下安装的,然后我遇到了问题中描述的相同错误。我使用此视频作为参考,它以前工作过。在笔记本电脑上安装新窗口后,它就不工作了。