【问题标题】:Perl one-liner Authen::Passphrase::MySQL323Perl 单行 Authen::Passphrase::MySQL323
【发布时间】:2016-09-07 22:31:17
【问题描述】:

我有这个表现不错的单线

cat "$1" | perl -MDigest::SHA1=sha1_hex -lpe '$_ = sha1_hex $_'

我想使用不同的模块来创建 mysql323 哈希。

cat "$1" | perl -MAuthen::Passphrase::MySQL323=hash -lpe '$_ = hash $_'

但是我对 perl 单行代码的理解非常有限...... 谁能帮帮我?

【问题讨论】:

    标签: perl command-line


    【解决方案1】:

    Authen::Passphrase::MySQL323 不提供功能接口。你需要创建一个对象并调用一个方法。

    这是文档概要的一部分。我建议您阅读它们以确定您需要哪种方法,以及您需要如何初始化它以达到您的目的。

    $ppr = Authen::Passphrase::MySQL323->new(
        hash_hex => "2af8a0a82c8f9086"); 
    $hash = $ppr->hash;
    

    一般来说,在你的单行中它看起来像这样,不幸的是它变得更长了。

    cat "$1" | perl -MAuthen::Passphrase::MySQL323 -lpe '$_ = Authen::Passphrase::MySQL323->new(hash_hex => $_)->hash'
    

    将参数更改为new 以及根据需要调用的方法。

    【讨论】:

    • 所以我尝试了您的示例,但它似乎不起作用:-(( echo "mypass" | perl -MAuthen::Passphrase::MySQL323 -lpe '$_ = Authen::Passphrase::MySQL323 ->new(hash_hex => $_)->hash' 导致“mypass”不是有效的十六进制 MySQL v3.23 hash at -e line 1
    • @Sebastian 正如我所说,您可能需要为构造函数使用不同的参数。我没有读过这个特定的加密是如何工作的。可能是passphrase。请检查文档。
    猜你喜欢
    • 2012-01-09
    • 1970-01-01
    • 2012-05-03
    • 2018-01-12
    • 1970-01-01
    • 2021-10-17
    • 2017-05-24
    • 2011-07-03
    • 1970-01-01
    相关资源
    最近更新 更多