2016-05-12 9 views
1

私はこの素敵なワンライナーPerlのワンライナーのAuthen ::パスフレーズ:: MySQL323

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

を行っていると私はmysql323ハッシュを作成するための別のモジュールを使用していました。 perlのワンライナーの私の非常に限られた理解が失敗したが

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

... 誰も私を助けてもらえますか?

答えて

0

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に変更し、必要に応じて呼び出されるメソッドを変更します。

+0

@Borodinありがとう、私はそれを逃した:) – simbabque

+0

私はあなたの例を試みたが、それは動作しないようだ: - ((エコー "mypass" | perl - MAuthen :: Passphrase :: MySQL323 - lpe '$ _ = Authen :: Passphrase :: MySQL323-> new(hash_hex => $ _) - > hashは "mypass"の結果が有効な16進数ではない-e行1のMySQL v3.23ハッシュ –

+1

@セバスチャン私が言ったように、コンストラクタに別の引数を使用するようにしましたが、私はこの特定の暗号化の仕組みを読んでいませんでした。おそらくそれは 'パスフレーズ'です。 – simbabque

関連する問題