14.4. sha — SHA-1 消息摘要算法

从版本 2.5 开始不推荐使用:而是使用hashlib模块。

该模块实现了 NIST 安全哈希算法(称为 SHA-1)的接口。 SHA-1 是原始 SHA 哈希算法的改进版本。它的使用方式与md5模块相同:使用new()创建 sha 对象,然后使用update()方法向该对象提供任意字符串,然后您可以随时向其索要* digest *的级联。到目前为止,字符串已馈入。 SHA-1 摘要为 160 位,而不是 MD5 的 128 位。

  • sha. new([* string *])
    • 返回一个新的 sha 对象。如果存在* string *,则进行方法调用update(string)

以下值在模块中作为常量提供,并作为new()返回的 sha 对象的属性提供:

  • sha. blocksize

    • 馈入哈希函数的块的大小;这始终是1。此大小用于允许对任意字符串进行哈希处理。
  • sha. digest_size

    • 结果摘要的大小(以字节为单位)。始终为20

sha 对象与 md5 对象具有相同的方法:

  • sha. update(* arg *)

    • 使用字符串* arg *更新 sha 对象。重复调用等效于将所有参数串联在一起的单个调用:m.update(a); m.update(b)等效于m.update(a+b)
  • sha. digest ( )

    • 返回到目前为止传递给update()方法的字符串的摘要。这是一个 20 字节的字符串,其中可能包含非 ASCII 字符,包括空字节。
  • sha. hexdigest ( )

    • digest()一样,摘要以字符串形式返回,长度为 40,仅包含十六进制数字。这可用于在电子邮件或其他非二进制环境中安全地交换值。
  • sha. copy ( )

    • 返回 sha 对象的副本(“克隆”)。这可用于有效地计算共享公共初始子字符串的字符串的摘要。

See also