Python 自然语言模型的加解密

Python 自然语言模型的加解密,python,encryption,cryptography,nlp,aes,Python,Encryption,Cryptography,Nlp,Aes,我想要自然语言模型的加密解密。我想使用自然语言字符作为我的分析工作的关键和文本,如下所示。我怎样才能做到这一点 from Crypto.Cipher import AES import os BLOCK_SIZE = 32 PADDING = '0' pad = lambda s: s + (BLOCK_SIZE - len(s) % BLOCK_SIZE) * PADDING EncodeAES = lambda c, s: c.encrypt(pad(s)) Decod

我想要自然语言模型的加密解密。我想使用自然语言字符作为我的分析工作的关键和文本,如下所示。我怎样才能做到这一点

 from Crypto.Cipher import AES
 import os

 BLOCK_SIZE = 32
 PADDING = '0'

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

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

 DecodeAES = lambda c, e: c.decrypt(e.rstrip(PADDING))

 secret = u'ककककक..'

 obj = AES.new(secret)

 message = u'कककककककककककक'

 encoded = EncodeAES(obj, message)

 decoded = DecodeAES(obj, encoded)
 print 'Decrypted string: ', decoded.rstrip('0')

若要使用UTF-8作为编码,请使用unicode。encode'UTF-8'可将unicode字符串转换为UTF-8编码字符串,而string.decode'UTF-8'可将UTF-8编码字符串转换为unicode字符串是的,它们不同:

secret = u'ककककक.'.encode('utf-8')

message = u'कककककककककककक'.encode('utf-8')

decoded = DecodeAES(obj, encoded).decode('utf-8')

什么不起作用?您是否尝试过使用其他类型的字符进行加密/解密,如教程中所示?它起作用了吗?它与使用自然语言字符有什么区别?你试过了吗?显示输出/回溯。我尝试了很多方法。问题是这些库采用ascii编码,而不是utf-8编码标准,因此它们不接受所有文本,因为它们不是ascii解码的。如果是这样,只是从utf-8来回转换我试过了,但它不支持密钥大小,因为文本字符是3个字节,我们无法获得16个字节的密钥大小。您是否需要使用utf-8?你能改用UTF-16吗?你知道吗,你应该读一下,虽然它是为Java设计的。您不应该将密钥字符串直接转换为AES密钥。你应该先对它进行散列运算。