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 模板;
更新文档;
依赖项¶
无。