PHPackages                             joomla/crypt - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. joomla/crypt

ActiveJoomla-package[Framework](/categories/framework)

joomla/crypt
============

Joomla Crypt Package

4.0.0(11mo ago)7323.3k↑61.8%81GPL-2.0-or-laterPHPPHP ^8.3.0CI failing

Since Jun 4Pushed 5mo ago12 watchersCompare

[ Source](https://github.com/joomla-framework/crypt)[ Packagist](https://packagist.org/packages/joomla/crypt)[ Docs](https://github.com/joomla-framework/crypt)[ RSS](/packages/joomla-crypt/feed)WikiDiscussions 3.x-dev Synced 2d ago

READMEChangelog (6)Dependencies (7)Versions (23)Used By (1)

The Crypt Package [![Build Status](https://github.com/joomla-framework/crypt/actions/workflows/ci.yml/badge.svg?branch=3.x-dev)](https://github.com/joomla-framework/crypt)
===========================================================================================================================================================================

[](#the-crypt-package-)

[![Latest Stable Version](https://camo.githubusercontent.com/341854ca155b0b8c83c537167c9ff994ec303390cb99121b09aa345de647ac8b/68747470733a2f2f706f7365722e707567782e6f72672f6a6f6f6d6c612f63727970742f762f737461626c65)](https://packagist.org/packages/joomla/crypt)[![Total Downloads](https://camo.githubusercontent.com/4d855b4e3c81b9c73fdf87493dd1283ba895d939ba057ed8a01afaf772ed8dd9/68747470733a2f2f706f7365722e707567782e6f72672f6a6f6f6d6c612f63727970742f646f776e6c6f616473)](https://packagist.org/packages/joomla/crypt)[![Latest Unstable Version](https://camo.githubusercontent.com/da5931830286ddbe44114dd23eea58acdea9aa6bf6c05bfef1ab1eb2766bb279/68747470733a2f2f706f7365722e707567782e6f72672f6a6f6f6d6c612f63727970742f762f756e737461626c65)](https://packagist.org/packages/joomla/crypt)[![License](https://camo.githubusercontent.com/fa2d3dac07e888085231550ac4de487876af4deb521d7ee37c515f58815d28a1/68747470733a2f2f706f7365722e707567782e6f72672f6a6f6f6d6c612f63727970742f6c6963656e7365)](https://packagist.org/packages/joomla/crypt)

The Crypt password provides a set of classes that can be used for encrypting and hashing data.

Interfaces
----------

[](#interfaces)

### `PasswordInterface`

[](#passwordinterface)

`PasswordInterface` is an interface that requires a class to be implemented with a create and a verify method.

The create method should take a plain text password and a type and return a hashed password.

The verify method should accept a plain text password and a hashed password and return a boolean indicating whether or not the password matched the password in the hash.

The `PasswordInterface` interface defines the following constants for use with implementations:

- `PasswordInterface::BLOWFISH`
- `PasswordInterface::JOOMLA`
- `PasswordInterface::MD5`
- `PasswordInterface::PBKDF`

Classes
-------

[](#classes)

### `Password\Simple`

[](#passwordsimple)

#### Usage

[](#usage)

In addition to the interface `PasswordInterface` there is also a basic implementation provided which provides for use with the most common password schemes. This if found in the `Password\Simple` class.

Aside from the two methods create and verify methods, this implementation also adds an additional method called setCost. This method is used to set a cost parameter for methods that support workload factors. It takes an integer cost factor as a parameter.

`Password\Simple` provides support for bcrypt, MD5 and the traditional Joomla! CMS hashing scheme. The hash format can be specified during hash creation by using the constants `PasswordInterface::BLOWFISH`, `PasswordInterface::MD5`, `PasswordInterface::JOOMLA`, and `PasswordInterface::PBKDF`. An appropriate salt will be automatically generated when required.

Installation via Composer
=========================

[](#installation-via-composer)

Add `"joomla/crypt": "~3.0" to the require block in your composer.json and then run `composer install`.

```
{
	"require": {
		"joomla/crypt": "~3.0"
	}
}
```

Alternatively, you can simply run the following from the command line:

```
composer require joomla/crypt "~3.0"
```

If you want to include the test sources, use

```
composer require --prefer-source joomla/crypt "~3.0"
```

###  Health Score

60

—

FairBetter than 98% of packages

Maintenance63

Regular maintenance activity

Popularity43

Moderate usage in the ecosystem

Community30

Small or concentrated contributor base

Maturity88

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 66% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~246 days

Recently: every ~164 days

Total

19

Last Release

345d ago

Major Versions

1.4.0 → 2.0.0-beta2020-06-05

2.0.1 → 3.0.02023-10-05

3.0.3 → 4.0.02025-07-24

PHP version history (7 changes)1.0-alphaPHP &gt;=5.3.10

1.3.1PHP ^5.3.10|~7.0

2.0.0-betaPHP ^7.2.5

2.0.0PHP ^7.2.5|^8.0

2.0.1PHP ^7.2.5|~8.0.0|~8.1.0

3.0.0PHP ^8.1.0

4.0.0PHP ^8.3.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/305a2164440014dcef9ac681c139fe5e8a1ce1d7a8c3b3cfb828497729a4c70e?d=identicon)[wilsonge](/maintainers/wilsonge)

![](https://avatars.githubusercontent.com/u/42966168?v=4)[Release-Joomla](/maintainers/release-joomla)[@release-joomla](https://github.com/release-joomla)

![](https://avatars.githubusercontent.com/u/313866?v=4)[Hannes Papenberg](/maintainers/Hackwar)[@Hackwar](https://github.com/Hackwar)

---

Top Contributors

[![mbabker](https://avatars.githubusercontent.com/u/368545?v=4)](https://github.com/mbabker "mbabker (140 commits)")[![Hackwar](https://avatars.githubusercontent.com/u/313866?v=4)](https://github.com/Hackwar "Hackwar (26 commits)")[![frankmayer](https://avatars.githubusercontent.com/u/825497?v=4)](https://github.com/frankmayer "frankmayer (7 commits)")[![nibra](https://avatars.githubusercontent.com/u/827605?v=4)](https://github.com/nibra "nibra (7 commits)")[![Achal-Aggarwal](https://avatars.githubusercontent.com/u/3330262?v=4)](https://github.com/Achal-Aggarwal "Achal-Aggarwal (5 commits)")[![heelc29](https://avatars.githubusercontent.com/u/66922325?v=4)](https://github.com/heelc29 "heelc29 (4 commits)")[![dongilbert](https://avatars.githubusercontent.com/u/718028?v=4)](https://github.com/dongilbert "dongilbert (4 commits)")[![rdeutz](https://avatars.githubusercontent.com/u/467356?v=4)](https://github.com/rdeutz "rdeutz (3 commits)")[![realityking](https://avatars.githubusercontent.com/u/628508?v=4)](https://github.com/realityking "realityking (3 commits)")[![wilsonge](https://avatars.githubusercontent.com/u/1986000?v=4)](https://github.com/wilsonge "wilsonge (3 commits)")[![joomla-jenkins](https://avatars.githubusercontent.com/u/929228?v=4)](https://github.com/joomla-jenkins "joomla-jenkins (2 commits)")[![PhilETaylor](https://avatars.githubusercontent.com/u/400092?v=4)](https://github.com/PhilETaylor "PhilETaylor (1 commits)")[![richard67](https://avatars.githubusercontent.com/u/7413183?v=4)](https://github.com/richard67 "richard67 (1 commits)")[![pborreli](https://avatars.githubusercontent.com/u/77759?v=4)](https://github.com/pborreli "pborreli (1 commits)")[![ianmacl](https://avatars.githubusercontent.com/u/176534?v=4)](https://github.com/ianmacl "ianmacl (1 commits)")[![dfritsch](https://avatars.githubusercontent.com/u/1972157?v=4)](https://github.com/dfritsch "dfritsch (1 commits)")[![paragonie-security](https://avatars.githubusercontent.com/u/15914520?v=4)](https://github.com/paragonie-security "paragonie-security (1 commits)")[![eddieajau](https://avatars.githubusercontent.com/u/700871?v=4)](https://github.com/eddieajau "eddieajau (1 commits)")[![peter279k](https://avatars.githubusercontent.com/u/9021747?v=4)](https://github.com/peter279k "peter279k (1 commits)")

---

Tags

decryptionencryptionjoomlajoomla-frameworkphpframeworkjoomlacrypt

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/joomla-crypt/health.svg)

```
[![Health](https://phpackages.com/badges/joomla-crypt/health.svg)](https://phpackages.com/packages/joomla-crypt)
```

###  Alternatives

[joomla/filter

Joomla Filter Package

151.5M10](/packages/joomla-filter)[joomla/http

Joomla HTTP Package

18734.9k15](/packages/joomla-http)[joomla/application

Joomla Application Package

23445.7k13](/packages/joomla-application)[joomla/registry

Joomla Registry Package

18526.3k21](/packages/joomla-registry)[joomla/di

Joomla DI Package

15433.2k12](/packages/joomla-di)[joomla/filesystem

Joomla Filesystem Package

12410.5k7](/packages/joomla-filesystem)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
