PKCS7 padding wordt automatisch verwijderd, maar het bericht komt met PKCS5 padding.
De string heeft 16 bytes, waarvan de laatste twee 0x0202, wat hoort, maar wat ik er dus af wil hebben.
Wat is een goeie manier om de padding te verwijderen?
[size=xsmall]Toevoeging op 02/06/2021 09:50:09:[/size]
Ik heb zelf gepuzzled en kwam hier op:
<?php
/**
* Ontsleutel berichten
* @note block size is 16 bytes
* @param string $sBericht (hexadecimaal)
* @param string $sSleutel
* @return string
*/
function oracleDecrypt(string $sBericht, string $sSleutel) : string
{
/* ... */
// PKCS5 padding wordt niet door openssl_decrypt() verwijderd
$iPadding = ord(substr($sTekst, -1));
if ($iPadding > 0 && $iPadding < 16) {
return substr($sTekst, 0, strlen($sTekst) - $iPadding);
}
return $sTekst;
}
?>