GenerateDerivedKey

GenerateDerivedKey[password]

根据给定的 password 生成 DerivedKey 对象.

GenerateDerivedKey[password,salt]

根据 password 和给定的 salt 生成 DerivedKey 对象.

更多信息和选项

  • GenerateDerivedKey 使用计算密集型密钥派生函数来生成加密型强密钥哈希.
  • passwordsalt 可以是字符串、表示字节值或 ByteArray 对象的整数列表.
  • GenerateDerivedKey[password] 等价于 GenerateDerivedKey[password,Automatic]. 如果没有提供 salt,则随机产生.
  • GenerateDerivedKey 接受 Method 选项,用 Association 指定密钥派生函数和参数.
  • Method 的常见设置包括:
  • "Function"密钥派生函数
    "FunctionParameters"密钥派生函数的参数
  • 支持的密钥派生函数有:"scrypt""Argon2d""Argon2i""Argon2id".
  • "scrypt" 密钥派生函数的参数是一个 Association,其中包括:
  • "KeySize"64密钥长度,单位为字节
    "N"2^15计算成本因子
    "r"8区块大小因子
    "p"1并行化因子
  • "N" 的值必须是大于 1 的 2 的整数幂.
  • "Argon2" 密钥派生函数的参数为一个 Association,其中包括:
  • "KeySize"64密钥长度,单位为字节
    "t"2迭代次数
    "m"2^16使用的内存大小,单位为 kibibyte
    "p"1并行化因子
  • "m" 的值必须是 2 的整数幂.
  • 为了生成加密型安全密钥,通常会调整密钥派生函数的参数以使得在特定计算机上的计算时间低于几分之一秒.

范例

打开所有单元关闭所有单元

基本范例  (13)

生成派生密钥:

用密码和盐生成派生密钥:

用整数列表作为密码生成派生密钥:

ByteArray 作为密码生成派生密钥:

用整数列表作为盐生成派生密钥:

用指定的密钥派生函数生成派生密钥:

指定密钥派生函数:

用 "scrypt" 和指定函数参数生成派生密钥:

用密码和盐生成具有特定参数的派生密钥:

生成 DerivedKey 的字符串表示:

根据字符串表示构建 DerivedKey

根据密码生成 ByteArray

指定密钥派生函数和参数:

范围  (1)

计算时间随 "scrypt" 中的 rp 线性增加:

应用  (3)

根据简单的密码字符串生成加密型强密码哈希:

验证密码:

用字符串表示中的派生密钥验证密码:

属性和关系  (3)

给定同样的密码和盐可生成同样的 DerivedKey

根据 DerivedKey 生成 SymmetricKey

比较派生函数创建的密钥和从派生密钥的字符串表示中获取的密钥:

可能存在的问题  (4)

对于某些参数,派生密钥的生成可能要花费大量的时间:

密钥派生函数的参数必须是机器整数:

一些密钥派生函数对密码和盐大小有限制:

创建对称密钥时,从派生密钥获取的随机数据可能会被截断以适应新密钥的大小:

为了生成所需大小的派生密钥,必须明确指定密钥的大小:

Wolfram Research (2019),GenerateDerivedKey,Wolfram 语言函数,https://reference.wolfram.com/language/ref/GenerateDerivedKey.html (更新于 2020 年).

文本

Wolfram Research (2019),GenerateDerivedKey,Wolfram 语言函数,https://reference.wolfram.com/language/ref/GenerateDerivedKey.html (更新于 2020 年).

CMS

Wolfram 语言. 2019. "GenerateDerivedKey." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2020. https://reference.wolfram.com/language/ref/GenerateDerivedKey.html.

APA

Wolfram 语言. (2019). GenerateDerivedKey. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/GenerateDerivedKey.html 年

BibTeX

@misc{reference.wolfram_2024_generatederivedkey, author="Wolfram Research", title="{GenerateDerivedKey}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/GenerateDerivedKey.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_generatederivedkey, organization={Wolfram Research}, title={GenerateDerivedKey}, year={2020}, url={https://reference.wolfram.com/language/ref/GenerateDerivedKey.html}, note=[Accessed: 22-November-2024 ]}