我正在尝试实现一个加密的字符字段。
我在用着pydes http://twhiteman.netfirms.com/des.html用于加密
这就是我所拥有的:
from pyDes import triple_des, PAD_PKCS5
from binascii import unhexlify as unhex
from binascii import hexlify as dohex
class BaseEncryptedField(models.CharField):
def __init__(self, *args, **kwargs):
self.td = triple_des(unhex('c35414909168354f77fe89816c6b625bde4fc9ee51529f2f'))
super(BaseEncryptedField, self).__init__(*args, **kwargs)
def to_python(self, value):
return self.td.decrypt(unhex(value), padmode=PAD_PKCS5)
def get_db_prep_value(self, value):
return dohex(self.td.encrypt(value, padmode=PAD_PKCS5))
该字段已成功加密保存到数据库中
但退休时它不会打印出解密版本
有任何想法吗?
您忘记设置元类:
class BaseEncryptedField(models.CharField):
__metaclass__ = models.SubfieldBase
... etc ...
As 文档解释了 http://docs.djangoproject.com/en/1.2/howto/custom-model-fields/#the-subfieldbase-metaclass, to_python
仅在使用 SubfieldBase 元类时调用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)