如何在梅森代码中创建字符串的 SHA-256 哈希



我正在尝试创建一个字符串的 SHA-256 哈希 Mason按照堆栈溢出问题的答案进行操作SHA256 在 perl 中消化并使用 Digest::SHA模块

以下是包含该代码的文件abc.mi的内容:

use Digest::SHA qw(sha256_hex);
<%init>
    my $message = 'random content';
    my $encryptedMsg = sha256_hex($message);
</%init>

但它抛出以下错误:

Undefined subroutine &Safe::Root0::HTML::Mason::Commands::sha256_hex called

知道为什么即使我在文件本身的开头定义了它,它也sha256_hex视为未定义吗?

这与这是带有扩展.mi的梅森代码有关吗?

====

====== 编辑 ==========

这是在浏览了针对此问题发布的答案后,我的查询的解决方案。

<%init>
    my $message = 'random content';
    my $encryptedMsg = Digest::SHA::sha256_hex($message);
</%init>

在 Mason 中,你的 Perl 代码需要在你的标签中。标记之外的任何内容都只是要包含在输出中的内容。所以你想要这样的东西:

<%init>
  use Digest::SHA qw(sha256_hex);
  my $message = 'random content';
  my $encryptedMsg = sha256_hex($message);
</%init>

最新更新