代码之家  ›  专栏  ›  技术社区  ›  Meghdeep Ray

Python3 hashlib和Google BigQuery的MD5哈希输出差异

  •  2
  • Meghdeep Ray  · 技术社区  · 8 年前

    在Google BigQuery中运行以下查询将提供此输出: SfaKXIST7CwL9ImCHCH8Ow==

    select md5( "hi" )
    

    但是,在Python中运行MD5哈希的代码会得到不同的输出: 49f68a5c8493ec2c0bf489821c21fc3b

    import hashlib
    hashlib.md5( b"hi" ).hexdigest()
    

    既然它们都使用相同的算法,那么输出不也应该相同吗这里有什么不同的原因?

    也在 BigQuery Documentation ,代码生成一个摘要,而不是一个hexdigest,但是当我在BigQuery中执行命令时,它会发出一个hexdigest。

    1 回复  |  直到 8 年前
        1
  •  2
  •   Meghdeep Ray    8 年前

    出于某种原因,大查询通过在base64中对摘要进行编码来输出摘要。

    import hashlib
    import base64
    print base64.b64encode(hashlib.md5(b'hi').digest())
    

    上面的输出应该与 bigquery . 我不知道为什么google会输出base 64编码,尽管文档中没有提到。