__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.216.10: ~ $
package Digest::base;

use strict;
use warnings;

our $VERSION = "1.20";

# subclass is supposed to implement at least these
sub new;
sub clone;
sub add;
sub digest;

sub reset {
    my $self = shift;
    $self->new(@_);    # ugly
}

sub addfile {
    my ( $self, $handle ) = @_;

    my $n;
    my $buf = "";

    while ( ( $n = read( $handle, $buf, 4 * 1024 ) ) ) {
        $self->add($buf);
    }
    unless ( defined $n ) {
        require Carp;
        Carp::croak("Read failed: $!");
    }

    $self;
}

sub add_bits {
    my $self = shift;
    my $bits;
    my $nbits;
    if ( @_ == 1 ) {
        my $arg = shift;
        $bits  = pack( "B*", $arg );
        $nbits = length($arg);
    }
    else {
        ( $bits, $nbits ) = @_;
    }
    if ( ( $nbits % 8 ) != 0 ) {
        require Carp;
        Carp::croak("Number of bits must be multiple of 8 for this algorithm");
    }
    return $self->add( substr( $bits, 0, $nbits / 8 ) );
}

sub hexdigest {
    my $self = shift;
    return unpack( "H*", $self->digest(@_) );
}

sub b64digest {
    my $self = shift;
    my $b64  = $self->base64_padded_digest;
    $b64 =~ s/=+$//;
    return $b64;
}

sub base64_padded_digest {
    my $self = shift;
    require MIME::Base64;
    return MIME::Base64::encode( $self->digest(@_), "" );
}

1;

__END__

=head1 NAME

Digest::base - Digest base class

=head1 SYNOPSIS

  package Digest::Foo;
  use base 'Digest::base';

=head1 DESCRIPTION

The C<Digest::base> class provide implementations of the methods
C<addfile> and C<add_bits> in terms of C<add>, and of the methods
C<hexdigest> and C<b64digest> in terms of C<digest>.

Digest implementations might want to inherit from this class to get
this implementations of the alternative I<add> and I<digest> methods.
A minimal subclass needs to implement the following methods by itself:

    new
    clone
    add
    digest

The arguments and expected behaviour of these methods are described in
L<Digest>.

=head1 SEE ALSO

L<Digest>

Filemanager

Name Type Size Permission Actions
base.pm File 1.94 KB 0644
file.pm File 1.68 KB 0644
Filemanager