--- phpcrypt/Mode.php (333)
+++ phpcrypt/Mode.php (334)
@@ -291,9 +291,10 @@
// now determine the next multiple of blockSize(), then find
// the difference between that and the length of $str,
// this is how many padding bytes we will need
- $num = ceil($len / $bytes) * $bytes;
- $num = $num - $len;
-
+ //$num = ceil($len / $bytes) * $bytes;
+ //$num = $num - $len;
+ $num = $bytes - ($len % $bytes);
+
Padding::pad($str, $num, $this->padding);
return true;
}
test_demo.php
<?php
include_once("phpcrypt-0.5.1/phpCrypt.php");
use PHP_Crypt\PHP_Crypt as PHP_Crypt;
$key = "1111111111111111";
$crypt = new PHP_Crypt($key, PHP_Crypt::CIPHER_RIJNDAEL_128, PHP_Crypt::MODE_ECB, PHP_Crypt::PAD_PKCS7);
$a = array(
'1',
'12',
'123',
'1234',
'12345',
'123456',
'1234567',
'12345678',
'123456789',
'1234567890',
'1234567890A',
'1234567890AB',
'1234567890ABC',
'1234567890ABCD',
'1234567890ABCDE',
'1234567890ABCDEF',
'1234567890ABCDEFa',
'1234567890ABCDEFab',
'1234567890ABCDEFabc',
'1234567890ABCDEFabcd',
'1234567890ABCDEFabcde',
'1234567890ABCDEFabcdef',
);
$b = array();
foreach($a as $i) {
#$crypt->IV($iv);
#echo trim(base64_encode(($crypt->encrypt(strToHex($i))))) . PHP_EOL;
$encrypt = base64_encode(($crypt->encrypt($i)));
$b[] = $encrypt;
echo $encrypt . PHP_EOL;
}
fFGQn5XB6biGo0h80+vtaQ==
5uouaKX+YwLAD5tWLMwSYw==
XtRDz3Z8+6VwWb4WUIqGBQ==
Zkq5wW2IpVjcx/M/XSRotg==
mYJBuGe/HWIkpa534v+0bg==
wflYk5saIuyUdCjuOkX6NQ==
wafZEL/l6k3GvmCV2M+88g==
StSCw3MWJc0h1DBzw8O00g==
4DTkUmCJxSBw4tSYiEMEJA==
9bGjQnT3aYeXIcRgu/Vf4Q==
dH5xIqxAOY4+AAE13aeCPg==
tRVE3M6URs+OnT+5X4TJaQ==
GtMSaaAJZmJXCl4cmXftdg==
0GzqRf9WjEZzmVpUoF5SWw==
4UEpGmtgWgYgUFi48piZuw==
QVjc0M5lqYuBItzjOIX0ofMMacT5ReZU69SziLHI95A=
QVjc0M5lqYuBItzjOIX0oRC/sxaeSwiVCRYDtcfRSzU=
QVjc0M5lqYuBItzjOIX0oVy8bOJ66ehQC+WUfXHVT3A=
QVjc0M5lqYuBItzjOIX0oZobDT3o92inV1KTxggMGME=
QVjc0M5lqYuBItzjOIX0ocI2JWgP3EbOyG521WXPUUQ=
QVjc0M5lqYuBItzjOIX0of3Mpn1KHVjBNWSAr5cf71E=
QVjc0M5lqYuBItzjOIX0oaW1GHLp78FkEMBcxTwad4c=
The result: