Solution for: TypeError: object of type 'NoneType' has no len()
Solution for: TypeError: object of type 'NoneType' has no len()
所以,我在使用 pyaes 库时有点乱,我只想加密和解密一个简单的字符串,所以我创建了这 2 个函数:
def aes_encrypt(key, plaintext):
aes = pyaes.AESModeOfOperationCTR(key)
encrypted_text = aes.encrypt(plaintext)
print(encrypted_text)
def aes_decrypt(key, encrypted_text):
aes = pyaes.AESModeOfOperationCTR(key)
decrypted_text = aes.decrypt(encrypted_text)
print(decrypted_text)
使用 key_265 = os.urandom(32) 生成密钥
我尝试执行以下几行:
encrypted_text = aes_encrypt(key_256, "Hi World!")
decrypted_text = aes_decrypt(key_256, encrypted_text)
但是我收到这个错误:while len(self._remaining_counter) < len(plaintext):
TypeError: object of type 'NoneType' has no len()
有人可以向我解释为什么会这样并告诉我可能的解决方案吗?
这可能是个骗局post,但我还没有在其他类似线程上找到解决方案。
我坐在这里,看着 pyaes
实施,思考 "but it should work"...
问题出在你的函数上。
encrypted_text = aes_encrypt(key_256, "Hi World!")
encrypted_text
的值是多少?让我们看看功能:
def aes_encrypt(key, plaintext):
aes = pyaes.AESModeOfOperationCTR(key)
encrypted_text = aes.encrypt(plaintext)
print(encrypted_text)
没有return
。打印不等于返回。因此该函数隐式 returns None
.
修复:在 print
之后添加 return encrypted_text
。 + 解密同理
所以,我在使用 pyaes 库时有点乱,我只想加密和解密一个简单的字符串,所以我创建了这 2 个函数:
def aes_encrypt(key, plaintext):
aes = pyaes.AESModeOfOperationCTR(key)
encrypted_text = aes.encrypt(plaintext)
print(encrypted_text)
def aes_decrypt(key, encrypted_text):
aes = pyaes.AESModeOfOperationCTR(key)
decrypted_text = aes.decrypt(encrypted_text)
print(decrypted_text)
使用 key_265 = os.urandom(32) 生成密钥 我尝试执行以下几行:
encrypted_text = aes_encrypt(key_256, "Hi World!")
decrypted_text = aes_decrypt(key_256, encrypted_text)
但是我收到这个错误:while len(self._remaining_counter) < len(plaintext):
TypeError: object of type 'NoneType' has no len()
有人可以向我解释为什么会这样并告诉我可能的解决方案吗?
这可能是个骗局post,但我还没有在其他类似线程上找到解决方案。
我坐在这里,看着 pyaes
实施,思考 "but it should work"...
问题出在你的函数上。
encrypted_text = aes_encrypt(key_256, "Hi World!")
encrypted_text
的值是多少?让我们看看功能:
def aes_encrypt(key, plaintext):
aes = pyaes.AESModeOfOperationCTR(key)
encrypted_text = aes.encrypt(plaintext)
print(encrypted_text)
没有return
。打印不等于返回。因此该函数隐式 returns None
.
修复:在 print
之后添加 return encrypted_text
。 + 解密同理