---
name: "Data::Printer::Filter::Digest"
section: "3pm"
platform: "linux"
package: "libdata-printer-perl"
version: "1.002001-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Data::Printer::Filter::Digest"
---

# Data::Printer::Filter::Digest(3pm)

pretty-printing MD5, SHA and many other digests

## NAME

Data::Printer::Filter::Digest - pretty-printing MD5, SHA and many other digests

## SYNOPSIS

In your `".dataprinter"` file:

```
    filters = Digest
```

You may also setup the look and feel with the following options:

```
    filter_digest.show_class_name = 0
    filter_digest.show_reset      = 1
    # you can even customize your themes:
    colors.digest = #27ac3c
```

That's it!

## DESCRIPTION

This is a filter plugin for Data::Printer. It filters through several message digest objects and displays their current value in hexadecimal format as a string.

### Parsed Modules

Any module that inherits from Digest::base. The following ones are actively supported:

- •

  Digest::Adler32

- •

  Digest::MD2

- •

  Digest::MD4

- •

  Digest::MD5

- •

  Digest::SHA

- •

  Digest::SHA1

- •

  Digest::Whirlpool

If you have any suggestions for more modules or better output, please let us know.

### Extra Options

Aside from the display color, there are a few other options to be customized via the `"filter_digest"` option key:

*show\_class\_name*

If set to true (the default) the class name will be displayed right next to the hexadecimal digest.

*show\_reset*

If set to true (the default), the filter will add a `"[reset]"` tag after dumping an empty digest object. See the rationale below.

### Note on dumping Digest::\* objects

The digest operation is effectively a destructive, read-once operation. Once it has been performed, most Digest::\* objects are automatically reset and can be used to calculate another digest value.

This behaviour - or, rather, forgetting about this behaviour - is a common source of issues when working with Digests.

This Data::Printer filter will **not** destroy your object. Instead, we work on a *cloned* version to display the hexdigest, leaving your original object untouched.

As another debugging convenience for developers, since the empty object will produce a digest even after being used, this filter adds by default a `"[reset]"` tag to indicate that the object is empty, in a 'reset' state - i.e. its hexdigest is the same as the hexdigest of a new, empty object of that same class.

## SEE ALSO

Data::Printer
