我正在使用Django 1.8中的Cryptography Application
并尝试将Cipher Text
存储在我的模型字段中。以下是我的Message
模型:
class Message(models.Model):
user_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
user_name = models.ForeignKey(User)
message = models.TextField()
encrypted_message = models.CharField(max_length=200, null=True, blank=True)
hashed_message = models.CharField(max_length=100, null=True, blank=True)
def __unicode__(self):
return unicode(self.user_id)
我在Python中使用以下pycrypto模块来加密消息并将密文存储在我的Django模型中。
加密和解密代码在这里:
from Crypto.Cipher import AES
# Encryption
encryption_suite = AES.new('This is a key123', AES.MODE_CFB, 'This is an IV456')
cipher_text = encryption_suite.encrypt("Life is Beautiful")
# Decryption
decryption_suite = AES.new('This is a key123', AES.MODE_CFB, 'This is an IV456')
plain_text = decryption_suite.decrypt(cipher_text)
现在假设User
输入了邮件My life is Beautiful
,那么您可以看到加密邮件将是:
'encrypted_message':
> u'\ufffdH\x060\ufffd!W\ufffdooK8\ufffdg\ufffd\ufffd\ufffd\ufffd',
{'message':u'Life很漂亮','user_name':, 'encrypted_message': U '\ ufffdH \ X060 \ ufffd!w ^ \ ufffdooK8 \ ufffdg \ ufffd \ ufffd \ ufffd \ ufffd', 'hashed_message': u'8ada92984f1fc55010c4d2fa38d0fba499691bc746f83eff089ba5212a65f083a947aa1fe6209f05278a5dc7ee12b361' }
但问题是当我将这个Cipher Text
存储在我的模型中时,它会出现一些我不能再decrypt
的怪异角色。任何人都可以帮助我如何将cipher text
存储在我的模型字段中,然后decrypt
。
答案 0 :(得分:2)
您可以使用base64.b64encode()
和base64.b64decode()
将超文本转换为不会破坏HTML表单的可读形式。