【问题标题】:How do I decode base64 encoded session data from Catalyst::Plugin::Session?如何解码来自 Catalyst::Plugin::Session 的 base64 编码会话数据?
【发布时间】:2016-07-21 03:12:31
【问题描述】:

我继承了一些使用这些会话模块的代码,这些模块将编码某种混淆的 Base64 文本以存储在表中并将其解码出来,但我似乎没有办法实际获取数据解码正确。

它似乎使用Catalyst::Plugin::Session,但我没有运气以任何编码或任何方式解码它。

如果我现在解码数据,我会得到拉丁字符的正常外观文本,但其他内容(如基本数字)似乎是乱码。我几乎尝试了所有字符编码都没有成功。

如何解码此模块存储的数据?

代码中的实际用法是这样的:

$user->update({ user_id => $user->id });
$c->session->{user_name} = $user->name;

【问题讨论】:

  • CGI::Session::Serialize::Base64 的代码看起来很简单。它使用 MIME::Base64。那里没什么特别的。你能提供示例数据吗?
  • 另外,您用 catalyst 标记了这个问题,但您说的是 CGI::Session。这两个真的不好混。是哪一个?
  • 糟糕,是的,似乎使用 Catalyst::Plugin::Session,我的错。
  • 您应该真正包含一些从序列化会话中提取的示例数据,也许还有编写这些数据的代码部分。我看不出你的序列化模块会怎样

标签: perl base64 catalyst


【解决方案1】:

啊,发现我的混淆字符串实际上是 Perl 以字符串形式存储哈希的恶魔方式,并且 Catalyst 模块似乎使用Storable 来执行此操作,因此将 MIME::Base64 和 Storable 一起使用是解决方案,就像这样:

print thaw(decode_base64($my_stuff));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    相关资源
    最近更新 更多