v1.2.0: Umbenennung, zweizeiliger Erfolgstext, Umlaute

This commit is contained in:
2026-09-21 20:28:37 +02:00
parent c9338b18c6
commit 560a003433
+12 -11
View File
@@ -1,13 +1,13 @@
/*! /*!
* fp-altcha.js -- kleiner, eigenstaendiger Loeser fuer das klassische ALTCHA V1 * fp-altcha.js -- kleiner, eigenständiger Löser für das klassische ALTCHA V1
* Proof-of-Work-Verfahren (SHA-256 Hashcash-Stil). * Proof-of-Work-Verfahren (SHA-256 Hashcash-Stil).
* *
* Sucht fuer eine vom Server vorgegebene Aufgabe {algorithm, challenge, salt, maxnumber, signature} * Sucht für eine vom Server vorgegebene Aufgabe {algorithm, challenge, salt, maxnumber, signature}
* eine Zahl n mit 0 <= n <= maxnumber, fuer die SHA-256(salt + n) == challenge gilt, und traegt das * eine Zahl n mit 0 <= n <= maxnumber, für die SHA-256(salt + n) == challenge gilt, und trägt das
* Ergebnis base64-kodiert in ein verstecktes Formularfeld "altcha" ein. Die Verifikation auf dem * Ergebnis base64-kodiert in ein verstecktes Formularfeld "altcha" ein. Die Verifikation auf dem
* Server erfolgt mit der offiziellen ALTCHA-PHP-Bibliothek (siehe src/Vendor/AltchaOrg/Altcha/V1). * Server erfolgt mit der offiziellen ALTCHA-PHP-Bibliothek (siehe src/Vendor/AltchaOrg/Altcha/V1).
* *
* Laeuft vollstaendig lokal im Browser -- es wird keine Anfrage an einen Drittanbieter gesendet. * Läuft vollständig lokal im Browser -- es wird keine Anfrage an einen Drittanbieter gesendet.
*/ */
(function () { (function () {
'use strict'; 'use strict';
@@ -33,7 +33,7 @@
async function solve(algorithm, salt, target, maxNumber) { async function solve(algorithm, salt, target, maxNumber) {
if (algorithm !== 'SHA-256') { if (algorithm !== 'SHA-256') {
// Nur SHA-256 wird von diesem kleinen Loeser unterstuetzt. // Nur SHA-256 wird von diesem kleinen Löser unterstützt.
return null; return null;
} }
@@ -74,7 +74,7 @@
if (number === null) { if (number === null) {
if (status) { if (status) {
status.textContent = container.getAttribute('data-label-failed') || 'Sicherheitspruefung fehlgeschlagen. Bitte Seite neu laden.'; status.textContent = container.getAttribute('data-label-failed') || 'Sicherheitsprüfung fehlgeschlagen. Bitte Seite neu laden.';
} }
container.setAttribute('data-fp-altcha-state', 'failed'); container.setAttribute('data-fp-altcha-state', 'failed');
return; return;
@@ -93,12 +93,12 @@
if (status) { if (status) {
status.innerHTML = '<i class="fa fa-check" aria-hidden="true"></i> ' + status.innerHTML = '<i class="fa fa-check" aria-hidden="true"></i> ' +
(container.getAttribute('data-label-verified') || 'Sicherheitspruefung bestaetigt'); (container.getAttribute('data-label-verified') || 'Sicherheitsprüfung<br>bestanden');
} }
} catch (e) { } catch (e) {
container.setAttribute('data-fp-altcha-state', 'failed'); container.setAttribute('data-fp-altcha-state', 'failed');
if (status) { if (status) {
status.textContent = container.getAttribute('data-label-failed') || 'Sicherheitspruefung fehlgeschlagen. Bitte Seite neu laden.'; status.textContent = container.getAttribute('data-label-failed') || 'Sicherheitsprüfung fehlgeschlagen. Bitte Seite neu laden.';
} }
} }
} }
@@ -112,7 +112,8 @@
event.preventDefault(); event.preventDefault();
var status = widgets[i].querySelector('.fp-altcha-status'); var status = widgets[i].querySelector('.fp-altcha-status');
if (status) { if (status) {
status.textContent = 'Bitte einen Moment warten, die Sicherheitspruefung laeuft noch.'; status.textContent = widgets[i].getAttribute('data-label-wait') ||
'Bitte einen Moment warten, die Sicherheitsprüfung läuft noch.';
} }
return; return;
} }
@@ -122,8 +123,8 @@
function init() { function init() {
if (!window.crypto || !window.crypto.subtle) { if (!window.crypto || !window.crypto.subtle) {
// Sehr alte Browser ohne Web Crypto API: Pruefung kann nicht durchgefuehrt werden. // Sehr alte Browser ohne Web Crypto API: Prüfung kann nicht durchgeführt werden.
// Das Formular bleibt dann serverseitig blockiert (kein gueltiges "altcha" Feld). // Das Formular bleibt dann serverseitig blockiert (kein gültiges "altcha" Feld).
return; return;
} }