0

我们正在使用在 Stingray 流量管理器下运行的 TrafficScript 来加密字符串并将该加密值存储在 cookie 中。像这样:

$encrypt = "string to encrypt";
$passphrase = "passphrase";
$encrypted= string.base64encode(string.encrypt($encrypt, $passphrase));

http.setResponseCookie("encrypted", $encrypted, "path=/");

然后我想做的是在 C# 中解密该 cookie 值,但是,到目前为止我还无法实现它。我怀疑这是因为 TrafficScript 使用的算法的确切细节没有完整记录。参考指南指出:

string.encrypt( string, passphrase ) - 使用提供的密码短语加密字符串。返回的字符串使用 AES 分组密码进行加密,使用密码短语的扩展形式作为密码密钥。还添加了 MAC 以确保字符串的完整性。

我试过 AesManaged 但得到一个异常'要解密的数据长度无效'。

任何人都可以提供任何指示吗?

4

1 回答 1

0

我没有设法找到纯粹使用 TrafficScript 的方法。

所以我最终编写了一个 Java 扩展并从我的 TrafiicScript 规则中运行它。这是通过重用Joseph Ssenyange在博客中发布的一些代码来实现的,该博客详细介绍了如何为 Java 和 C# 编写跨平台加密。

于 2012-09-14T10:07:37.637 回答