aes256_encode()

Allgemein

Diese PHP-Funktion wird benötigt, um den Umsatzzähler der Registrierkasse zu verschlüsseln. Eingabewerte sind der Kassenname und die Belegnummer als String als erster Parameter, der (neue) Kassenstand als Integer als zweiter Parameter und der AES-Key im Hex-Format als dritter. Rückgabewert ist der Signaturwert.

function aes256_encode($sString, $iTurnover, $sKey){

 $binIv  = substr(hash('sha256', $sString, true), 0, 16);
 $binTc  = pack('J', $iTurnover);
 $binKey = base64_decode($sKey);

 return openssl_encrypt($binTc, 'aes-256-ctr', $binKey, false, $binIv);

}

Beispiele

Im Fall des Startbelegs ruft man die Funktion folgendermaßen auf. Der aktuelle Kassenstand ist hier natürlich 0.

aes256_encode('KassennameBelegnummer', 0, 'AES-Key');

Im Fall eines normalen Belegs addiert man den aktuellen Kassenstand mit dem Betrag des Belegs und ruft die Funktion folgendermaßen auf:

$iCents = $iCentsInDerKasse + $iCentsAmBeleg;

aes256_encode('KassennameBelegnummer', $iCents, 'AES-Key');

Tipp: Man braucht keine Stornobelege, weil man mit dem Standardbeleg auch negative Zahlen erfassen kann.

Im Fall eines Null-Belegs ruft man die Funktion mit dem derzeitigen Kassenstand folgendermaßen auf:

aes256_encode('KassennameBelegnummer', $iCentsInDerKasse, 'AES-Key');

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert