PHPackages                             minimalic/silverstripe-cryptoprotect - 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. [Security](/categories/security)
4. /
5. minimalic/silverstripe-cryptoprotect

ActiveSilverstripe-vendormodule[Security](/categories/security)

minimalic/silverstripe-cryptoprotect
====================================

Proof of Work Captcha Field for Silverstripe CMS 5

1.0.3(2y ago)026BSD-3-ClausePHP

Since Apr 8Pushed 1y ago1 watchersCompare

[ Source](https://github.com/minimalic/silverstripe-cryptoprotect)[ Packagist](https://packagist.org/packages/minimalic/silverstripe-cryptoprotect)[ RSS](/packages/minimalic-silverstripe-cryptoprotect/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (4)Dependencies (1)Versions (5)Used By (0)

Silverstripe CryptoProtect
==========================

[](#silverstripe-cryptoprotect)

CryptoProtect is a Proof of Work Captcha Form extension for Silverstripe's [SpamProtection Module](https://github.com/silverstripe/silverstripe-spamprotection).

The Proof of Work mechanism leverages SHA256 hashing to use the computational power of the client's device, significantly deterring Spam-Bots from flooding forms.

Working demo on [iloveunix.com/contact-us](https://iloveunix.com/contact-us).

Requirements
------------

[](#requirements)

- Silverstripe CMS version 4 or 5
- Silverstripe SpamProtection Module version 3 or higher

Installation
------------

[](#installation)

Install using Composer:

```
composer require minimalic/silverstripe-cryptoprotect
```

Configuration
-------------

[](#configuration)

### 1. Set default protector

[](#1-set-default-protector)

Set CryptoProtect as the default captcha in your project's config (e.g. `spamprotection.yml`):

```
SilverStripe\SpamProtection\Extension\FormSpamProtectionExtension:
  default_spam_protector: minimalic\CryptoProtect\Forms\CryptographicChallengeProtector
```

### 2. Rebuild Database

[](#2-rebuild-database)

Refresh your database by navigating to your website's root directory in the shell and running:
`vendor/bin/sake dev/build "flush=all"`

Or use your base URL with:
`/dev/build?flush=all`

### 3. Generate hashes

[](#3-generate-hashes)

In the CMS, navigate to the "admin/cryptographic-challenges" area and generate new hashes.

### 4. Add field

[](#4-add-field)

Add new "Spam Protection Field" to your Form.

Customization
-------------

[](#customization)

### The YAML file

[](#the-yaml-file)

Fine-tune the hashing mechanism in your project's config (e.g. `spamprotection.yml`). The currently available options with default values:

```
minimalic\CryptoProtect\Models\CryptographicChallenge:
  difficulty_cycles: 100000
  hashes_count: 20
  hide_input_by: 'bootstrap'
  show_calculation_status: true
  show_progress_bar: true
  hide_after_solving: true
```

Note: Increasing `difficulty_cycles` may extend calculation times on slower devices (client-side). A higher `hashes_count` requires more time for hash regeneration (server-side).

### Display options

[](#display-options)

`hide_input_by` - Hide input field by using one of available options:

- `bootstrap` default, use the "visually-hidden" class
- `style` use a "display: none" inline style
- `none` show the input field

Note

The hash input field is always shown in browsers with disabled JS as fallback to be able to resolve the challenge by hand.

`show_calculation_status` - Display a loading spinner/complete checkmark and status text

`show_progress_bar` - Display a progress bar

`hide_after_solving` - Hide the spinner/status and/or the progress bar after 4 seconds

### Finish customization

[](#finish-customization)

Remember to flush your caches (`?flush=all`) and regenerate hashes in the CMS whenever adjusting the configuration.

For more detailed information on configuring and utilizing the Spam Protection Field, visit the [SpamProtection Module](https://github.com/silverstripe/silverstripe-spamprotection) repository.

License
-------

[](#license)

See [License](LICENSE)

Copyright (c) 2024, minimalic.com - Sebastian Finke All rights reserved.

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance32

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~9 days

Total

4

Last Release

733d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5a179665a0838e9e3dd012106ebefb73b9f83b25c896f0b105100d3c4e6defa9?d=identicon)[minimalic](/maintainers/minimalic)

---

Top Contributors

[![minimalic](https://avatars.githubusercontent.com/u/18061991?v=4)](https://github.com/minimalic "minimalic (22 commits)")

---

Tags

antispamcaptchasilverstripe-modulespamprotectsilverstripecaptchaantispamspamprotectionsha256cryptoprotect

### Embed Badge

![Health badge](/badges/minimalic-silverstripe-cryptoprotect/health.svg)

```
[![Health](https://phpackages.com/badges/minimalic-silverstripe-cryptoprotect/health.svg)](https://phpackages.com/packages/minimalic-silverstripe-cryptoprotect)
```

###  Alternatives

[mews/captcha

Laravel 5/6/7/8/9/10/11/12 Captcha Package

2.6k5.5M84](/packages/mews-captcha)[gregwar/captcha

Captcha generator

1.8k9.6M136](/packages/gregwar-captcha)[gregwar/captcha-bundle

Captcha bundle

3524.7M32](/packages/gregwar-captcha-bundle)[undefinedoffset/silverstripe-nocaptcha

A spam protector and form field using Google's reCAPTCHA v2 or optionally a foundation v3 implementation

33471.6k16](/packages/undefinedoffset-silverstripe-nocaptcha)[usarise/turnstile

PHP library for Turnstile, is Cloudflare’s smart CAPTCHA alternative. It can be embedded into any website without sending traffic through Cloudflare and works without showing visitors a CAPTCHA.

2393.5k6](/packages/usarise-turnstile)[exadium/silverstripe-invisible-spam-protection

Very simple anti spam protection based on principle that automated spammers enter bogus information in all form fields. Field is added to form that is hidden using CSS hiding it from human users. Form is only allowed to be submitted if field is empty. Includes an EditableInvisibleSpamField to integrate with the UserForms module.

112.1k](/packages/exadium-silverstripe-invisible-spam-protection)

PHPackages © 2026

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