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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Mason代码中创建字符串的SHA-256哈希?相关的知识,希望对你有一定的参考价值。

我试图通过跟随堆栈溢出问题Mason的答案并使用SHA256 digest in perl模块在Digest::SHA中创建字符串的SHA-256哈希

这些是包含该代码的文件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视为未定义,即使我在文件本身的开头定义它?

这有什么事实与Mason代码扩展.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>

以上是关于如何在Mason代码中创建字符串的SHA-256哈希?的主要内容,如果未能解决你的问题,请参考以下文章

尝试在 Visual Studio 中使用 SHA256 对程序集进行签名时出错

如何解密 SHA-256 加密字符串?

sas如何对数据进行sha256加密

在Python中使用SHA256对字节字符串进行签名

使用 Crypto++ 生成 SHA256 哈希,使用字符串作为输入和输出?

如何在每一轮中多次散列并连接一个字符串