【问题标题】:Correct way to hash password with Non-ASCII characters in Python 2.7在 Python 2.7 中使用非 ASCII 字符散列密码的正确方法
【发布时间】:2014-01-09 07:59:48
【问题描述】:

当用户输入还包含非 ascii 字符时,从用户输入创建密码哈希的正确和/或标准方法是什么?

我注意到,当我只使用 ASCII 字符生成 MD5 哈希时,我总是得到相同的结果。但是假设用户希望他/她的密码是“pöllö”(猫头鹰,英文)。

以下是一些在线 MD5 哈希生成器为 pöllö 生成哈希的示例

http://www.md5hashgenerator.com/index.php 哈希:0cbe7f5ca855599480e4313e63e8093d

http://www.miraclesalad.com/webtools/md5.php 哈希:0f6b1c5d67c201eb1c3c37300b8be077

【问题讨论】:

  • 这是字符集的问题。您的第一个网站使用 iso-8859-15,第二个网站使用 utf-8。第一个仅用于东欧语言(几乎),但使用 8 位代码,其中 utf-8 适合(或尝试)世界上所有语言,但字符可能每个编码为 8 到 32 位。

标签: python hash ascii md5


【解决方案1】:

使用hashlib模块中的md5类

【讨论】:

    【解决方案2】:

    在 python 中,这应该可以工作。

    #!/usr/bin/env python
    # -*- coding: utf-8 -*- 
    import  hashlib
    
    m = hashlib.md5()
    m.update("pöllö")
    print(m.hexdigest())
    

    顶部的 cmets 是一个源头声明,可以使用非 ascii 字符。 (src--Working with utf-8 encoding in Python source)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-19
      • 2015-06-08
      • 2023-04-07
      • 2019-05-21
      • 2019-02-15
      • 2021-11-01
      相关资源
      最近更新 更多