MooX::Role::CryptedPassword - Password attribute from a encrypted file.



    $ create_crypted_password --file-name etc/password.private \
                              --cipher-key 'This-is-the-cipher-key' \
                              --password 'This-is-a-nice-password'

Your class:

    package MyUserData;
    use Moo;
    with 'MooX::Role::CryptedPassword';

    has username => (is => 'ro', required => 1);



Somewhere else:

    my $ud = MyUserData->new(
        username => 'abeltje',

        password_file => 'etc/password.private',
        cipher_key    => 'This-is-the-cipher-key',


password => $password

The decrypted version of the password found in the password_file parameter.


This role adds an attribute password to your class. If the parameter password_file is passed, the contents are assumed to be encrypted with the Rijndael cipher (and you should supply the cipher_key argument).

Use the supplied create_crypted_password tool to generate the file.

In case the password (for development reasons) doesn't need to be encrypted or comes from a different source (like a key-value-store), one can always pass a plain-text password directly by passing it as the password parameter.


© MMXVII - Abe Timmerman <>


This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.