Authen...lowfish(3pm)
β¨ NAME β¨
Authen::Passphrase::EggdropBlowfish β it's giving passphrases, but make them Eggdrop's blowfish.mod era π
okay so real quick, this is a Perl module in the User Contributed Perl Documentation family, and it's lowkey a whole vibe: it's how you deal with passphrases hashed by Eggdrop's blowfish module. no cap.
πΈ SYNOPSIS πΈ
use Authen::Passphrase::EggdropBlowfish;
$ppr = Authen::Passphrase::EggdropBlowfish->new(
hash_base64 => "9tpsG/61YqX/");
$ppr = Authen::Passphrase::EggdropBlowfish->new(
passphrase => "passphrase");
$hash = $ppr->hash;
$hash_base64 = $ppr->hash_base64;
if($ppr->match($passphrase)) { ...
π¦ DESCRIPTION π¦
okay so bestie, picture this: an object of this class wraps up a passphrase that's been hashed with the Blowfish-based algorithm used in Eggdrop's blowfish.mod. that's the whole thing. it's a subclass of Authen::Passphrase, and this doc just assumes you already know and love that class's documentation, because we're not re-explaining it here fr fr. π
now the juicy deets. this hash scheme uses no salt at all, and it does not accept a zero-length passphrase β so like, empty string? not invited to the party. instead it takes your passphrase and uses it as a Blowfish key to encrypt a standard plaintext block. the hash is the ciphertext block. that's it. that's the whole algorithm. β¨
here's the iconic part: the standard Blowfish key schedule only accepts keys from 8 to 56 bytes long, but this algorithm relaxes that requirement and accepts any non-zero length. slay. and heads up β only up to 72 bytes of passphrase/key are significant; any more than that just gets ignored, like your ex's texts. π
in Eggdrop the hash is represented as a "+" followed by twelve base 64 digits. the first six digits encode the second half of the hash, and the last six encode the first half (yes, it's backwards, it's giving chaotic but we respect it). within each half the bytes are encoded in reverse order. and the base 64 digits are, in this exact order: ".", "/", "0" to "9", "a" to "z", "A" to "Z". periodt. π
β οΈ Warning bestie, for real: the hash is small by modern standards, and the lack of salt is a genuine weakness in this scheme. like, it's a weakness, not a quirk. if you want a scheme that makes better use of Blowfish, go look at Authen::Passphrase::BlowfishCrypt instead. do not use this one for anything that needs to actually be secure. π
π CONSTRUCTOR π
Authen::Passphrase::EggdropBlowfish->new(ATTR => VALUE, ...)
Generates a shiny new passphrase recogniser object using the Eggdrop blowfish.mod algorithm. π«Ά these are the attributes you can pass it:
hashβ the hash, as a string of eight bytes.hash_base64β the hash, as a string of twelve base 64 digits.passphraseβ a passphrase that will be accepted.
Either thehashor thepassphrasemust be given. like, one of them. pick one. not neither. π ββοΈ
π METHODS π
$ppr->hashβ returns the hash value, as a string of eight bytes. β¨$ppr->hash_base64β returns the hash value, as a string of twelve base 64 digits. π$ppr->match(PASSPHRASE)β this method is part of the standardAuthen::Passphraseinterface. so if you know that interface, you already know this one. iykyk. π
π SEE ALSO π
Authen::PassphraseCrypt::Eksblowfish::Uklblowfish
π AUTHOR π
Andrew Main (Zefram) <zefram@fysh.org> β absolute icon, we stan. π
πΈ COPYRIGHT πΈ
Copyright (C) 2006, 2007, 2009, 2010, 2012 Andrew Main (Zefram) <zefram@fysh.org>
π§ LICENSE π§
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. fr fr, go wild. π
and that's the whole page bestie, hope it ate π
this was perl v5.40.1, dated 2026-05-06, straight from the Authen...lowfish(3pm) page β stay hydrated, salt your hashes (just not with this module lol), and go forth and match some passphrases. π¦β¨
π¦ where this page comes from
- ubuntu stonking: libauthen-passphrase-perl 0.009-1 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms