我们正在使用在Stingray Traffic Manager下运行的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但是获得了一个例外'要解密的数据长度无效'。
任何人都可以提供任何指示吗?
答案 0 :(得分:0)
我没有找到一种纯粹使用TrafficScript的方法。
所以我最终编写了一个Java扩展并从我的TrafiicScript规则中运行它。通过重用Joseph Ssenyange中博客发布的一些代码,可以实现这一点,详细说明了如何为Java和C#编写跨平台加密。