【问题标题】:Perl LSB Steganography ScriptPerl LSB 隐写脚本
【发布时间】:2018-04-05 04:34:38
【问题描述】:

我一直在研究 Andrew Ker 提供的一个小示例 Perl 脚本,它在 PGM 和 PPM 文件中执行 LSB 隐写术。 (访问 - http://www.cs.ox.ac.uk/andrew.ker/docs/ADK11B.pdf

呈现的脚本如下(在 Ubuntu Linux 上运行):

perl -n0777 <cover-image > stego-image 
    -e’split/(\s+)/,<STDIN>,5;@z=map ord,split"",pop@_;srand key; for(0..$#z){@p[$k,$_]=($_,$p[$k=int rand$_]);} map{$z[$q=shift@p]+=($z[$q]-ord()&1)*(rand 2<=>1)} split"",unpack"B*",$_;print@_,map chr,@z;’ secret-text-file

但是,这给了我一个语法错误,我认为这是由于使用了 ' 字符。我没有使用 Perl 的经验,所以我正在放慢脚步试图找出问题所在。

任何建议将不胜感激。

【问题讨论】:

    标签: perl steganography


    【解决方案1】:

    看起来字符 是由创建此 PDF 的任何文字处理程序转换的。它应该是一个单引号'。替换两个实例,它应该可以工作。

    【讨论】:

    • 感谢您的建议,我进行了这些更改并收到以下错误:Bareword found where operator expected at test.prl line 3, near "secret-text" (Missing operator before secret-text ?)
    • @jr791 为什么会涉及到 test.pl 文件?您应该直接在命令行上运行它。 perl 是 Perl 解释器命令。见explainshell.com/…
    • @jr791,如果 secret-text 被视为 Perl 代码的一部分,那么您并没有像应有的那样简单地将两个 替换为 '
    猜你喜欢
    • 1970-01-01
    • 2018-08-01
    • 2013-08-18
    • 2016-05-25
    • 2016-08-18
    • 2018-07-29
    • 2012-05-08
    • 1970-01-01
    相关资源
    最近更新 更多