【发布时间】:2013-03-13 02:14:15
【问题描述】:
我正在为 F5 Big-Ip v. 11.x 编写 iRule。我对 CRYPTO 库有疑问。
当我尝试以这种方式解密字符串时
set foo [CRYPTO::decrypt -alg rc4 -keyhex $key $to_decrypt]
其中 $key 是十六进制格式的字符串,$to_decrypt 是加密后的字符串。
我收到一个错误:
tmm err tmm[7107]: 01220001:3: TCL 错误: /Common/testirule - 缺少必需的参数
您可以在此处找到文档:https://devcentral.f5.com/wiki/iRules.CRYPTO__decrypt.ashx
我无法理解缺少哪个参数,您能帮帮我吗?提前致谢!
编辑:我在这里添加了来自文档的 sn-p:
CRYPTO::decrypt [-alg ] [-ctx [-final]] [-key[hex] ] [-iv[hex] ] []
根据几个参数解密数据
alg - 算法。给定列表中的 ASCII 字符串(见下文) 拼写是小写的,iRule 将失败任何不在 列表。在 ctx 模式下,alg 必须在第一个 CRYPTO::command 和 无法修改。 ctx - context 是 Tcl 变量的名称,并且 只能从 CRYPTO 命令生成和使用。备注:尝试 获取或设置 ctx 变量的值将失败。当一个 CTX 变量 首次在 iRule 中使用,将从给定的 tcl 对象中生成 参数(alg、key、iv 等)。只能使用给定的 CTX 变量 对于一个 CRYPTO:: 命令。一条规则 如果 CTX 被用于不同目的,CRYPTO:: 命令将失败。 “-final”必须用于同一 CTX 的最后一个 CRYPTO:: 命令 变量来完成 CRYPTO:: 命令。使用“-final”后, CTX 变量将被释放,并且可以使用相同的 ctx 变量名 重复使用。当 CTX 变量已经存储了一个键和一个 IV 值时 在其中,该值只能在 CRYPTO 命令真正之前更新 开始,即在给出任何数据之前。命令启动后 在完成之前,更新 CTX 中的密钥或 IV 将失败。 键 - 键 (二进制数据)。密钥长度由使用的算法确定。可以生成 通过 CRYPTO::keygen keyhex - 密钥作为十六进制数据。密钥长度确定 通过使用 alg。可由 CRYPTO::keygen iv 生成 - 初始化 矢量(二进制数据)。长度由使用的 alg 决定。可 由 CRYPTO::keygen ivhex 生成 - 初始化向量为十六进制数据。 长度由使用的 alg 决定。可以通过 CRYPTO::keygen 生成
【问题讨论】:
-
该网站需要登录...
-
我知道,很遗憾我无法提供访问权限 :( 我将从文档中为问题添加一些内容
-
我想知道 rc4 算法是否需要额外的部分(即额外的“可选”参数,例如
-ctx或-iv)。不确定。
标签: encryption tcl f5 big-ip