【问题标题】:TypeError: Unicode-objects must be encoded before hashing What is wrong?TypeError: Unicode-objects must be encrypted before hashing 有什么问题?
【发布时间】:2018-03-26 10:08:52
【问题描述】:

我收到一个错误,TypeError:Unicode 对象必须在散列之前进行编码。 我写了代码,

        user = Data()
        passwd = request.data['password']

        md5 = hashlib.md5()
        md5.update(passwd)

        user.password = md5.hexdigest()
        print(user.password)

        user.save()

追溯 说

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py", line 35, in inner
    response = get_response(request)
  File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py", line 128, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py", line 126, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/local/lib/python3.6/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
    return view_func(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/rest_framework/viewsets.py", line 95, in view
    return self.dispatch(request, *args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/rest_framework/views.py", line 494, in dispatch
    response = self.handle_exception(exc)
  File "/usr/local/lib/python3.6/site-packages/rest_framework/views.py", line 454, in handle_exception
    self.raise_uncaught_exception(exc)
  File "/usr/local/lib/python3.6/site-packages/rest_framework/views.py", line 491, in dispatch
    response = handler(request, *args, **kwargs)
  File "/opt/project/app/views.py", line 27, in create
    md5.update(passwd)

我在代码顶部添加了#coding:utf-8,但发生了同样的错误。我的代码有什么问题?我应该如何解决这个问题?

【问题讨论】:

标签: python django


【解决方案1】:

错误告诉你需要做什么:将密码编码为字节串。

md5.update(passwd.encode('utf-8'))

请注意,尽管您可能根本不应该这样做;如果要使用用户的密码,请使用 User 模型的 set_password() 方法。

(请不要在脚本中随机添加编码声明;这只会影响文件中的文字字符。)

【讨论】:

    猜你喜欢
    • 2018-12-05
    • 2018-12-23
    • 1970-01-01
    • 2020-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多