Digest 内置函数

https://blueprints.launchpad.net/heat/+spec/digest-intrinsic-function

为用户提供执行摘要操作(如 MD5 或 SHA-512)的内置函数将会很有用。

问题描述

某些应用程序要求用户提供哈希格式的信息(例如,Chef 用户资源仅接受哈希密码),因此允许用户使用内置函数来完成此操作将会很有用。

提议的变更

添加一个类来运行现有的摘要算法(例如 MD5、SHA-512 等)来处理用户提供的数据,并在 HOT 函数列表中公开它。该类将接收摘要算法的名称和要哈希的值。

Python 的 hashlib 在大多数平台上原生支持 md5、sha1 和 sha2(sha224、256、384、512),并将记录支持的算法列表。但云提供商也可能支持更多算法,因为根据 Python 的构建方式,hashlib 也可以使用 OpenSSL 支持的算法。

示例

::

# 原始字符串 gravatar: { digest: [‘md5’, ‘sample@example.com’] }

# 从用户提供的参数 pwd_hash: { digest: [‘sha512’, { get_param: raw_password }] }

备选方案

对于此需求,实际上没有比内置函数更好的替代方案。

实现

负责人

andersonvom

里程碑

完成目标里程碑

Kilo-2

工作项

  • 添加执行摘要操作的类;

  • 将新类暴露给 HOT 模板;

  • 更新文档;

依赖项

无。