【发布时间】:2019-02-01 10:49:58
【问题描述】:
我正在尝试将 urandom 值存储到我的 Django 项目的 mySQL 数据库中。出于加密目的,该值必须是完全随机的。
我尝试了几个小时,我真的很沮丧。我搜索了一些答案,但解决方案不起作用。
如果我按照这里的建议尝试这个Store os.urandom variable to Sqlite database in Django
def createkey():
random_bytes = urandom(16)
return b64encode(random_bytes)
key = models.BinaryField(max_length=16, default=createkey)
...我收到此错误消息
django.db.utils.OperationalError: (1067, "Invalid default value for 'key'")
我也尝试过使用 binascii 库 os.urandom() decoding Issue 像这样
def createkey():
return binascii.hexlify(urandom(16)).decode()
有了上面的内容,我得到了这个错误信息:
string argument without an encoding
我正在使用 Python 3.6、Django 1.11.5 和 MySQL 数据库。
有没有办法将 urandom 的值存储到 Django 模型中?我想将它存储在 CharField 中,但如果它可以与其他字段一起使用,我也很高兴。
【问题讨论】:
标签: python mysql django cryptography