在Django中高效存储(并能够过滤)哈希的最佳方法

在Django中高效存储(并能够过滤)哈希的最佳方法,django,postgresql,hash,python-3.5,models,Django,Postgresql,Hash,Python 3.5,Models,我正在尝试创建一个Django应用程序,我可以在其中查找文件(md5、sha1或sha256)的散列,以获取该文件的属性。目前,我正在努力决定如何在数据库中高效地存储这些值 我已经看过Django的BinaryField,但不幸的是,它似乎是专门针对密码(散列)存储的,文档中明确提到,在处理QuerySet时,不能在该字段上进行过滤。然而,这对我的申请至关重要。我在SA上看到了另一篇关于存储MD5散列的文章,其中指出(具有良好的性能数字),Django的UUIDField非常适合。但是,UUID

我正在尝试创建一个Django应用程序,我可以在其中查找文件(md5、sha1或sha256)的散列,以获取该文件的属性。目前,我正在努力决定如何在数据库中高效地存储这些值

我已经看过Django的BinaryField,但不幸的是,它似乎是专门针对密码(散列)存储的,文档中明确提到,在处理QuerySet时,不能在该字段上进行过滤。然而,这对我的申请至关重要。我在SA上看到了另一篇关于存储MD5散列的文章,其中指出(具有良好的性能数字),Django的UUIDField非常适合。但是,UUIDField不支持超过16个字节,因此不适用于SHA1或SHA256哈希

我在网上查了一下,看是否有人为此提出了一个自定义的字段实现,但最终还是失败了。有人对如何进行有好的想法吗?我特别尝试避免将散列存储为(比如)base64或等效的hexstring(使用CharField);我只想存储散列的字节。对我来说,这似乎很奇怪,我不能简单地将20或32个原始字节存储到数据库中,并能够对其进行过滤

提前谢谢!如果我能提供更多信息,请告诉我

编辑:我使用Postgresql作为后端,使用python3