Skip to content

Commit 4c03402

Browse files
committed
BigInteger: update heatmap
1 parent 94c02fa commit 4c03402

File tree

7 files changed

+392
-16
lines changed

7 files changed

+392
-16
lines changed

math/col1.phps

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
<?php
2+
include('Math/BigInteger.php');
3+
include('Crypt/RSA.php');
4+
include('PHP/Compat/Function/str_split.php');
5+
include('PHP/Compat/Function/bcpowmod.php');
6+
7+
function microtime_float()
8+
{
9+
list($usec, $sec) = explode(" ", microtime());
10+
return ((float)$usec + (float)$sec);
11+
}
12+
13+
define('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_INTERNAL);
14+
define('MATH_BIGINTEGER_OPENSSL_DISABLE', true);
15+
16+
$start = microtime_float();
17+
18+
$rsa = new Crypt_RSA();
19+
20+
$plaintext = '...';
21+
22+
$rsa->loadKey('-----BEGIN PUBLIC KEY-----
23+
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAylq1ZRSREX7DWHUKg4HX
24+
KGN5C8GQgasXaobkF0J5ok/TfDQnG4WntB/brjQaQRN9phFovHEClj2XywYfL/s9
25+
syHHioaVOIMZ86cLP7xzJc6dF/bydPLD1p14DkpJLgCSx6CyTlFzOhmm4/YMEh4t
26+
XR8FHY1f3pgWwEDXkkMKo/2U5FIIH0HBfnXgZeYSw7DalriaiZ+PyxpnqfYA5TT2
27+
AXCiguSHlo14ZEf/dwNlDmEfjBLrJPltOp69ZlqZYeykuEjg54KbvR2EMjQWj3V6
28+
9sh1jPZvEeK8Tw/3E+aC4AoQzOB0VLF56yn1yfMZFvBRYd6RAhtcoU7Lli3/J7c3
29+
ewIDAQAB
30+
-----END PUBLIC KEY-----'); // public key
31+
32+
$rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1);
33+
$ciphertext = $rsa->encrypt($plaintext);
34+
35+
$rsa->loadKey('-----BEGIN RSA PRIVATE KEY-----
36+
MIIEpQIBAAKCAQEAylq1ZRSREX7DWHUKg4HXKGN5C8GQgasXaobkF0J5ok/TfDQn
37+
G4WntB/brjQaQRN9phFovHEClj2XywYfL/s9syHHioaVOIMZ86cLP7xzJc6dF/by
38+
dPLD1p14DkpJLgCSx6CyTlFzOhmm4/YMEh4tXR8FHY1f3pgWwEDXkkMKo/2U5FII
39+
H0HBfnXgZeYSw7DalriaiZ+PyxpnqfYA5TT2AXCiguSHlo14ZEf/dwNlDmEfjBLr
40+
JPltOp69ZlqZYeykuEjg54KbvR2EMjQWj3V69sh1jPZvEeK8Tw/3E+aC4AoQzOB0
41+
VLF56yn1yfMZFvBRYd6RAhtcoU7Lli3/J7c3ewIDAQABAoIBAQDIeuowxRmc/bxI
42+
TV0nQWKLr1Hj5dhnv7ypXA9rQ/8CYpgi/ACq8dZfTRj3FMPWKZtZBvJ/kG+BrnBP
43+
Qzdu8DoG2ba6dfAtVyZFEgDBGtHyaSuW7KD2YPbKEKU7cznhi8vgYEOH+IZyz6tb
44+
OxBmeuNy2SLWTpTnEkOoIhXx4N4P7Y7cTWE3eAnaVNf7moeL12lj6FYp0SwEQbtd
45+
lLCRN/Sts+6zIrQGwGO/+y7GK8LY6IqGZtf95eoGy5+OSnDSpddC5UXUG+9oIcrT
46+
5N3V1o+t1vYGMl93LO+dGYUugF3O3YQGlxGcJM57Cps57f56bhttZF6FVtsK7DJI
47+
X/vfVMHBAoGBAPHdHZ50HhxgN/yuWPtXTqTeAkVFi1VQAn+BKFiYwyRAiOY68YZX
48+
LwwqXa9Rc1uCUDKXHLGMPGAgZTfb6z19EAsGG08LQbeClZM0Jm1c83skqN8mnbrn
49+
nPSiFc09hSHRLmul195xOkpb0IxZ+8oeljXnbz6IJagzHLP40lvHx/rrAoGBANYu
50+
bwjrRDDWnaQQbPY3Z9fTHx9AD2ErPyVsg+OGvUqDGtTU/32kYR4anUkNaldLcI3k
51+
/QtYgxwE0zcCn9+fmfwYXvIEfmJG1+NH6Mw0rLt15qO6vhZ/fx6ewV0ZtTUvxj2X
52+
yGO5gXE26v3Il+KtlIXm3DBFR5/3+wQIbtaT03GxAoGBAN8dtJoc0j4pANznVQyf
53+
sNvkNcIDcpKD2ZoX4slAOxxxMBj7HR1pxev6FSyK/djX8PWKcxzSmkuu9tC93ld9
54+
zFPvETgs0TXhj+wYuq4+hhn+ao5YyD7INQFzmJsZ+nuExcbmWapJV5WK92rSA7Wj
55+
27vkQLo1zE9Kv1rC2gNy2+d7AoGBAInpFjfg/WSRHKpipTaZEHVpDNYbcou3xA49
56+
5GKiBMqwxpsal3R4Xsx6iKJcUAfrnIrRUpp2oN1uwe3e88CTTRyFOMWPXS28vhAr
57+
4lty43JFhYARo4prCBhYUtu2zPZ1T6mjTTXhYdbbbM6C1kHwUP0zXL58LZV0oJ3F
58+
LFFgmDrRAoGAS9i9FLcipuff0n+1e83rRiE78rAYqA345Y5exakEqfW/orTDfYcq
59+
or0jV1Oh8ZpspoQCEgei9pmP8BoN3j4JCV6sOduXPsRQfIqV7zAFCcIEqxnG1Xhz
60+
vnGFhUKyff8ObWammbWnYnnzXnXRCL+982W8LoOhTzTv7LuSIMq3eOg=
61+
-----END RSA PRIVATE KEY-----'); // private key
62+
echo $rsa->decrypt($ciphertext);
63+
64+
$elapsed = microtime_float() - $start;
65+
66+
echo "\r\ntook $elapsed seconds";

math/col2.phps

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
<?php
2+
include('Math/BigInteger.php');
3+
include('Crypt/RSA.php');
4+
include('PHP/Compat/Function/str_split.php');
5+
include('PHP/Compat/Function/bcpowmod.php');
6+
7+
function microtime_float()
8+
{
9+
list($usec, $sec) = explode(" ", microtime());
10+
return ((float)$usec + (float)$sec);
11+
}
12+
13+
define('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_BCMATH);
14+
define('MATH_BIGINTEGER_OPENSSL_DISABLE', true);
15+
16+
$start = microtime_float();
17+
18+
$rsa = new Crypt_RSA();
19+
20+
$plaintext = '...';
21+
22+
$rsa->loadKey('-----BEGIN PUBLIC KEY-----
23+
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAylq1ZRSREX7DWHUKg4HX
24+
KGN5C8GQgasXaobkF0J5ok/TfDQnG4WntB/brjQaQRN9phFovHEClj2XywYfL/s9
25+
syHHioaVOIMZ86cLP7xzJc6dF/bydPLD1p14DkpJLgCSx6CyTlFzOhmm4/YMEh4t
26+
XR8FHY1f3pgWwEDXkkMKo/2U5FIIH0HBfnXgZeYSw7DalriaiZ+PyxpnqfYA5TT2
27+
AXCiguSHlo14ZEf/dwNlDmEfjBLrJPltOp69ZlqZYeykuEjg54KbvR2EMjQWj3V6
28+
9sh1jPZvEeK8Tw/3E+aC4AoQzOB0VLF56yn1yfMZFvBRYd6RAhtcoU7Lli3/J7c3
29+
ewIDAQAB
30+
-----END PUBLIC KEY-----'); // public key
31+
32+
$rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1);
33+
$ciphertext = $rsa->encrypt($plaintext);
34+
35+
$rsa->loadKey('-----BEGIN RSA PRIVATE KEY-----
36+
MIIEpQIBAAKCAQEAylq1ZRSREX7DWHUKg4HXKGN5C8GQgasXaobkF0J5ok/TfDQn
37+
G4WntB/brjQaQRN9phFovHEClj2XywYfL/s9syHHioaVOIMZ86cLP7xzJc6dF/by
38+
dPLD1p14DkpJLgCSx6CyTlFzOhmm4/YMEh4tXR8FHY1f3pgWwEDXkkMKo/2U5FII
39+
H0HBfnXgZeYSw7DalriaiZ+PyxpnqfYA5TT2AXCiguSHlo14ZEf/dwNlDmEfjBLr
40+
JPltOp69ZlqZYeykuEjg54KbvR2EMjQWj3V69sh1jPZvEeK8Tw/3E+aC4AoQzOB0
41+
VLF56yn1yfMZFvBRYd6RAhtcoU7Lli3/J7c3ewIDAQABAoIBAQDIeuowxRmc/bxI
42+
TV0nQWKLr1Hj5dhnv7ypXA9rQ/8CYpgi/ACq8dZfTRj3FMPWKZtZBvJ/kG+BrnBP
43+
Qzdu8DoG2ba6dfAtVyZFEgDBGtHyaSuW7KD2YPbKEKU7cznhi8vgYEOH+IZyz6tb
44+
OxBmeuNy2SLWTpTnEkOoIhXx4N4P7Y7cTWE3eAnaVNf7moeL12lj6FYp0SwEQbtd
45+
lLCRN/Sts+6zIrQGwGO/+y7GK8LY6IqGZtf95eoGy5+OSnDSpddC5UXUG+9oIcrT
46+
5N3V1o+t1vYGMl93LO+dGYUugF3O3YQGlxGcJM57Cps57f56bhttZF6FVtsK7DJI
47+
X/vfVMHBAoGBAPHdHZ50HhxgN/yuWPtXTqTeAkVFi1VQAn+BKFiYwyRAiOY68YZX
48+
LwwqXa9Rc1uCUDKXHLGMPGAgZTfb6z19EAsGG08LQbeClZM0Jm1c83skqN8mnbrn
49+
nPSiFc09hSHRLmul195xOkpb0IxZ+8oeljXnbz6IJagzHLP40lvHx/rrAoGBANYu
50+
bwjrRDDWnaQQbPY3Z9fTHx9AD2ErPyVsg+OGvUqDGtTU/32kYR4anUkNaldLcI3k
51+
/QtYgxwE0zcCn9+fmfwYXvIEfmJG1+NH6Mw0rLt15qO6vhZ/fx6ewV0ZtTUvxj2X
52+
yGO5gXE26v3Il+KtlIXm3DBFR5/3+wQIbtaT03GxAoGBAN8dtJoc0j4pANznVQyf
53+
sNvkNcIDcpKD2ZoX4slAOxxxMBj7HR1pxev6FSyK/djX8PWKcxzSmkuu9tC93ld9
54+
zFPvETgs0TXhj+wYuq4+hhn+ao5YyD7INQFzmJsZ+nuExcbmWapJV5WK92rSA7Wj
55+
27vkQLo1zE9Kv1rC2gNy2+d7AoGBAInpFjfg/WSRHKpipTaZEHVpDNYbcou3xA49
56+
5GKiBMqwxpsal3R4Xsx6iKJcUAfrnIrRUpp2oN1uwe3e88CTTRyFOMWPXS28vhAr
57+
4lty43JFhYARo4prCBhYUtu2zPZ1T6mjTTXhYdbbbM6C1kHwUP0zXL58LZV0oJ3F
58+
LFFgmDrRAoGAS9i9FLcipuff0n+1e83rRiE78rAYqA345Y5exakEqfW/orTDfYcq
59+
or0jV1Oh8ZpspoQCEgei9pmP8BoN3j4JCV6sOduXPsRQfIqV7zAFCcIEqxnG1Xhz
60+
vnGFhUKyff8ObWammbWnYnnzXnXRCL+982W8LoOhTzTv7LuSIMq3eOg=
61+
-----END RSA PRIVATE KEY-----'); // private key
62+
echo $rsa->decrypt($ciphertext);
63+
64+
$elapsed = microtime_float() - $start;
65+
66+
echo "\r\ntook $elapsed seconds";

math/col3.phps

+65
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
<?php
2+
include('Math/BigInteger.php');
3+
include('Crypt/RSA.php');
4+
include('PHP/Compat/Function/str_split.php');
5+
include('PHP/Compat/Function/bcpowmod.php');
6+
7+
function microtime_float()
8+
{
9+
list($usec, $sec) = explode(" ", microtime());
10+
return ((float)$usec + (float)$sec);
11+
}
12+
13+
define('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_INTERNAL);
14+
15+
$start = microtime_float();
16+
17+
$rsa = new Crypt_RSA();
18+
19+
$plaintext = '...';
20+
21+
$rsa->loadKey('-----BEGIN PUBLIC KEY-----
22+
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAylq1ZRSREX7DWHUKg4HX
23+
KGN5C8GQgasXaobkF0J5ok/TfDQnG4WntB/brjQaQRN9phFovHEClj2XywYfL/s9
24+
syHHioaVOIMZ86cLP7xzJc6dF/bydPLD1p14DkpJLgCSx6CyTlFzOhmm4/YMEh4t
25+
XR8FHY1f3pgWwEDXkkMKo/2U5FIIH0HBfnXgZeYSw7DalriaiZ+PyxpnqfYA5TT2
26+
AXCiguSHlo14ZEf/dwNlDmEfjBLrJPltOp69ZlqZYeykuEjg54KbvR2EMjQWj3V6
27+
9sh1jPZvEeK8Tw/3E+aC4AoQzOB0VLF56yn1yfMZFvBRYd6RAhtcoU7Lli3/J7c3
28+
ewIDAQAB
29+
-----END PUBLIC KEY-----'); // public key
30+
31+
$rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1);
32+
$ciphertext = $rsa->encrypt($plaintext);
33+
34+
$rsa->loadKey('-----BEGIN RSA PRIVATE KEY-----
35+
MIIEpQIBAAKCAQEAylq1ZRSREX7DWHUKg4HXKGN5C8GQgasXaobkF0J5ok/TfDQn
36+
G4WntB/brjQaQRN9phFovHEClj2XywYfL/s9syHHioaVOIMZ86cLP7xzJc6dF/by
37+
dPLD1p14DkpJLgCSx6CyTlFzOhmm4/YMEh4tXR8FHY1f3pgWwEDXkkMKo/2U5FII
38+
H0HBfnXgZeYSw7DalriaiZ+PyxpnqfYA5TT2AXCiguSHlo14ZEf/dwNlDmEfjBLr
39+
JPltOp69ZlqZYeykuEjg54KbvR2EMjQWj3V69sh1jPZvEeK8Tw/3E+aC4AoQzOB0
40+
VLF56yn1yfMZFvBRYd6RAhtcoU7Lli3/J7c3ewIDAQABAoIBAQDIeuowxRmc/bxI
41+
TV0nQWKLr1Hj5dhnv7ypXA9rQ/8CYpgi/ACq8dZfTRj3FMPWKZtZBvJ/kG+BrnBP
42+
Qzdu8DoG2ba6dfAtVyZFEgDBGtHyaSuW7KD2YPbKEKU7cznhi8vgYEOH+IZyz6tb
43+
OxBmeuNy2SLWTpTnEkOoIhXx4N4P7Y7cTWE3eAnaVNf7moeL12lj6FYp0SwEQbtd
44+
lLCRN/Sts+6zIrQGwGO/+y7GK8LY6IqGZtf95eoGy5+OSnDSpddC5UXUG+9oIcrT
45+
5N3V1o+t1vYGMl93LO+dGYUugF3O3YQGlxGcJM57Cps57f56bhttZF6FVtsK7DJI
46+
X/vfVMHBAoGBAPHdHZ50HhxgN/yuWPtXTqTeAkVFi1VQAn+BKFiYwyRAiOY68YZX
47+
LwwqXa9Rc1uCUDKXHLGMPGAgZTfb6z19EAsGG08LQbeClZM0Jm1c83skqN8mnbrn
48+
nPSiFc09hSHRLmul195xOkpb0IxZ+8oeljXnbz6IJagzHLP40lvHx/rrAoGBANYu
49+
bwjrRDDWnaQQbPY3Z9fTHx9AD2ErPyVsg+OGvUqDGtTU/32kYR4anUkNaldLcI3k
50+
/QtYgxwE0zcCn9+fmfwYXvIEfmJG1+NH6Mw0rLt15qO6vhZ/fx6ewV0ZtTUvxj2X
51+
yGO5gXE26v3Il+KtlIXm3DBFR5/3+wQIbtaT03GxAoGBAN8dtJoc0j4pANznVQyf
52+
sNvkNcIDcpKD2ZoX4slAOxxxMBj7HR1pxev6FSyK/djX8PWKcxzSmkuu9tC93ld9
53+
zFPvETgs0TXhj+wYuq4+hhn+ao5YyD7INQFzmJsZ+nuExcbmWapJV5WK92rSA7Wj
54+
27vkQLo1zE9Kv1rC2gNy2+d7AoGBAInpFjfg/WSRHKpipTaZEHVpDNYbcou3xA49
55+
5GKiBMqwxpsal3R4Xsx6iKJcUAfrnIrRUpp2oN1uwe3e88CTTRyFOMWPXS28vhAr
56+
4lty43JFhYARo4prCBhYUtu2zPZ1T6mjTTXhYdbbbM6C1kHwUP0zXL58LZV0oJ3F
57+
LFFgmDrRAoGAS9i9FLcipuff0n+1e83rRiE78rAYqA345Y5exakEqfW/orTDfYcq
58+
or0jV1Oh8ZpspoQCEgei9pmP8BoN3j4JCV6sOduXPsRQfIqV7zAFCcIEqxnG1Xhz
59+
vnGFhUKyff8ObWammbWnYnnzXnXRCL+982W8LoOhTzTv7LuSIMq3eOg=
60+
-----END RSA PRIVATE KEY-----'); // private key
61+
echo $rsa->decrypt($ciphertext);
62+
63+
$elapsed = microtime_float() - $start;
64+
65+
echo "\r\ntook $elapsed seconds";

math/col4.phps

+65
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
<?php
2+
include('Math/BigInteger.php');
3+
include('Crypt/RSA.php');
4+
include('PHP/Compat/Function/str_split.php');
5+
include('PHP/Compat/Function/bcpowmod.php');
6+
7+
function microtime_float()
8+
{
9+
list($usec, $sec) = explode(" ", microtime());
10+
return ((float)$usec + (float)$sec);
11+
}
12+
13+
define('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_BCMATH);
14+
15+
$start = microtime_float();
16+
17+
$rsa = new Crypt_RSA();
18+
19+
$plaintext = '...';
20+
21+
$rsa->loadKey('-----BEGIN PUBLIC KEY-----
22+
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAylq1ZRSREX7DWHUKg4HX
23+
KGN5C8GQgasXaobkF0J5ok/TfDQnG4WntB/brjQaQRN9phFovHEClj2XywYfL/s9
24+
syHHioaVOIMZ86cLP7xzJc6dF/bydPLD1p14DkpJLgCSx6CyTlFzOhmm4/YMEh4t
25+
XR8FHY1f3pgWwEDXkkMKo/2U5FIIH0HBfnXgZeYSw7DalriaiZ+PyxpnqfYA5TT2
26+
AXCiguSHlo14ZEf/dwNlDmEfjBLrJPltOp69ZlqZYeykuEjg54KbvR2EMjQWj3V6
27+
9sh1jPZvEeK8Tw/3E+aC4AoQzOB0VLF56yn1yfMZFvBRYd6RAhtcoU7Lli3/J7c3
28+
ewIDAQAB
29+
-----END PUBLIC KEY-----'); // public key
30+
31+
$rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1);
32+
$ciphertext = $rsa->encrypt($plaintext);
33+
34+
$rsa->loadKey('-----BEGIN RSA PRIVATE KEY-----
35+
MIIEpQIBAAKCAQEAylq1ZRSREX7DWHUKg4HXKGN5C8GQgasXaobkF0J5ok/TfDQn
36+
G4WntB/brjQaQRN9phFovHEClj2XywYfL/s9syHHioaVOIMZ86cLP7xzJc6dF/by
37+
dPLD1p14DkpJLgCSx6CyTlFzOhmm4/YMEh4tXR8FHY1f3pgWwEDXkkMKo/2U5FII
38+
H0HBfnXgZeYSw7DalriaiZ+PyxpnqfYA5TT2AXCiguSHlo14ZEf/dwNlDmEfjBLr
39+
JPltOp69ZlqZYeykuEjg54KbvR2EMjQWj3V69sh1jPZvEeK8Tw/3E+aC4AoQzOB0
40+
VLF56yn1yfMZFvBRYd6RAhtcoU7Lli3/J7c3ewIDAQABAoIBAQDIeuowxRmc/bxI
41+
TV0nQWKLr1Hj5dhnv7ypXA9rQ/8CYpgi/ACq8dZfTRj3FMPWKZtZBvJ/kG+BrnBP
42+
Qzdu8DoG2ba6dfAtVyZFEgDBGtHyaSuW7KD2YPbKEKU7cznhi8vgYEOH+IZyz6tb
43+
OxBmeuNy2SLWTpTnEkOoIhXx4N4P7Y7cTWE3eAnaVNf7moeL12lj6FYp0SwEQbtd
44+
lLCRN/Sts+6zIrQGwGO/+y7GK8LY6IqGZtf95eoGy5+OSnDSpddC5UXUG+9oIcrT
45+
5N3V1o+t1vYGMl93LO+dGYUugF3O3YQGlxGcJM57Cps57f56bhttZF6FVtsK7DJI
46+
X/vfVMHBAoGBAPHdHZ50HhxgN/yuWPtXTqTeAkVFi1VQAn+BKFiYwyRAiOY68YZX
47+
LwwqXa9Rc1uCUDKXHLGMPGAgZTfb6z19EAsGG08LQbeClZM0Jm1c83skqN8mnbrn
48+
nPSiFc09hSHRLmul195xOkpb0IxZ+8oeljXnbz6IJagzHLP40lvHx/rrAoGBANYu
49+
bwjrRDDWnaQQbPY3Z9fTHx9AD2ErPyVsg+OGvUqDGtTU/32kYR4anUkNaldLcI3k
50+
/QtYgxwE0zcCn9+fmfwYXvIEfmJG1+NH6Mw0rLt15qO6vhZ/fx6ewV0ZtTUvxj2X
51+
yGO5gXE26v3Il+KtlIXm3DBFR5/3+wQIbtaT03GxAoGBAN8dtJoc0j4pANznVQyf
52+
sNvkNcIDcpKD2ZoX4slAOxxxMBj7HR1pxev6FSyK/djX8PWKcxzSmkuu9tC93ld9
53+
zFPvETgs0TXhj+wYuq4+hhn+ao5YyD7INQFzmJsZ+nuExcbmWapJV5WK92rSA7Wj
54+
27vkQLo1zE9Kv1rC2gNy2+d7AoGBAInpFjfg/WSRHKpipTaZEHVpDNYbcou3xA49
55+
5GKiBMqwxpsal3R4Xsx6iKJcUAfrnIrRUpp2oN1uwe3e88CTTRyFOMWPXS28vhAr
56+
4lty43JFhYARo4prCBhYUtu2zPZ1T6mjTTXhYdbbbM6C1kHwUP0zXL58LZV0oJ3F
57+
LFFgmDrRAoGAS9i9FLcipuff0n+1e83rRiE78rAYqA345Y5exakEqfW/orTDfYcq
58+
or0jV1Oh8ZpspoQCEgei9pmP8BoN3j4JCV6sOduXPsRQfIqV7zAFCcIEqxnG1Xhz
59+
vnGFhUKyff8ObWammbWnYnnzXnXRCL+982W8LoOhTzTv7LuSIMq3eOg=
60+
-----END RSA PRIVATE KEY-----'); // private key
61+
echo $rsa->decrypt($ciphertext);
62+
63+
$elapsed = microtime_float() - $start;
64+
65+
echo "\r\ntook $elapsed seconds";

math/col5.phps

+65
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
<?php
2+
include('Math/BigInteger.php');
3+
include('Crypt/RSA.php');
4+
//include('PHP/Compat/Function/str_split.php');
5+
//include('PHP/Compat/Function/bcpowmod.php');
6+
7+
function microtime_float()
8+
{
9+
list($usec, $sec) = explode(" ", microtime());
10+
return ((float)$usec + (float)$sec);
11+
}
12+
13+
define('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_GMP);
14+
15+
$start = microtime_float();
16+
17+
$rsa = new Crypt_RSA();
18+
19+
$plaintext = '...';
20+
21+
$rsa->loadKey('-----BEGIN PUBLIC KEY-----
22+
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAylq1ZRSREX7DWHUKg4HX
23+
KGN5C8GQgasXaobkF0J5ok/TfDQnG4WntB/brjQaQRN9phFovHEClj2XywYfL/s9
24+
syHHioaVOIMZ86cLP7xzJc6dF/bydPLD1p14DkpJLgCSx6CyTlFzOhmm4/YMEh4t
25+
XR8FHY1f3pgWwEDXkkMKo/2U5FIIH0HBfnXgZeYSw7DalriaiZ+PyxpnqfYA5TT2
26+
AXCiguSHlo14ZEf/dwNlDmEfjBLrJPltOp69ZlqZYeykuEjg54KbvR2EMjQWj3V6
27+
9sh1jPZvEeK8Tw/3E+aC4AoQzOB0VLF56yn1yfMZFvBRYd6RAhtcoU7Lli3/J7c3
28+
ewIDAQAB
29+
-----END PUBLIC KEY-----'); // public key
30+
31+
$rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1);
32+
$ciphertext = $rsa->encrypt($plaintext);
33+
34+
$rsa->loadKey('-----BEGIN RSA PRIVATE KEY-----
35+
MIIEpQIBAAKCAQEAylq1ZRSREX7DWHUKg4HXKGN5C8GQgasXaobkF0J5ok/TfDQn
36+
G4WntB/brjQaQRN9phFovHEClj2XywYfL/s9syHHioaVOIMZ86cLP7xzJc6dF/by
37+
dPLD1p14DkpJLgCSx6CyTlFzOhmm4/YMEh4tXR8FHY1f3pgWwEDXkkMKo/2U5FII
38+
H0HBfnXgZeYSw7DalriaiZ+PyxpnqfYA5TT2AXCiguSHlo14ZEf/dwNlDmEfjBLr
39+
JPltOp69ZlqZYeykuEjg54KbvR2EMjQWj3V69sh1jPZvEeK8Tw/3E+aC4AoQzOB0
40+
VLF56yn1yfMZFvBRYd6RAhtcoU7Lli3/J7c3ewIDAQABAoIBAQDIeuowxRmc/bxI
41+
TV0nQWKLr1Hj5dhnv7ypXA9rQ/8CYpgi/ACq8dZfTRj3FMPWKZtZBvJ/kG+BrnBP
42+
Qzdu8DoG2ba6dfAtVyZFEgDBGtHyaSuW7KD2YPbKEKU7cznhi8vgYEOH+IZyz6tb
43+
OxBmeuNy2SLWTpTnEkOoIhXx4N4P7Y7cTWE3eAnaVNf7moeL12lj6FYp0SwEQbtd
44+
lLCRN/Sts+6zIrQGwGO/+y7GK8LY6IqGZtf95eoGy5+OSnDSpddC5UXUG+9oIcrT
45+
5N3V1o+t1vYGMl93LO+dGYUugF3O3YQGlxGcJM57Cps57f56bhttZF6FVtsK7DJI
46+
X/vfVMHBAoGBAPHdHZ50HhxgN/yuWPtXTqTeAkVFi1VQAn+BKFiYwyRAiOY68YZX
47+
LwwqXa9Rc1uCUDKXHLGMPGAgZTfb6z19EAsGG08LQbeClZM0Jm1c83skqN8mnbrn
48+
nPSiFc09hSHRLmul195xOkpb0IxZ+8oeljXnbz6IJagzHLP40lvHx/rrAoGBANYu
49+
bwjrRDDWnaQQbPY3Z9fTHx9AD2ErPyVsg+OGvUqDGtTU/32kYR4anUkNaldLcI3k
50+
/QtYgxwE0zcCn9+fmfwYXvIEfmJG1+NH6Mw0rLt15qO6vhZ/fx6ewV0ZtTUvxj2X
51+
yGO5gXE26v3Il+KtlIXm3DBFR5/3+wQIbtaT03GxAoGBAN8dtJoc0j4pANznVQyf
52+
sNvkNcIDcpKD2ZoX4slAOxxxMBj7HR1pxev6FSyK/djX8PWKcxzSmkuu9tC93ld9
53+
zFPvETgs0TXhj+wYuq4+hhn+ao5YyD7INQFzmJsZ+nuExcbmWapJV5WK92rSA7Wj
54+
27vkQLo1zE9Kv1rC2gNy2+d7AoGBAInpFjfg/WSRHKpipTaZEHVpDNYbcou3xA49
55+
5GKiBMqwxpsal3R4Xsx6iKJcUAfrnIrRUpp2oN1uwe3e88CTTRyFOMWPXS28vhAr
56+
4lty43JFhYARo4prCBhYUtu2zPZ1T6mjTTXhYdbbbM6C1kHwUP0zXL58LZV0oJ3F
57+
LFFgmDrRAoGAS9i9FLcipuff0n+1e83rRiE78rAYqA345Y5exakEqfW/orTDfYcq
58+
or0jV1Oh8ZpspoQCEgei9pmP8BoN3j4JCV6sOduXPsRQfIqV7zAFCcIEqxnG1Xhz
59+
vnGFhUKyff8ObWammbWnYnnzXnXRCL+982W8LoOhTzTv7LuSIMq3eOg=
60+
-----END RSA PRIVATE KEY-----'); // private key
61+
echo $rsa->decrypt($ciphertext);
62+
63+
$elapsed = microtime_float() - $start;
64+
65+
echo "\r\ntook $elapsed seconds";

math/generate.phps

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
<?php
2+
$keys = array('PHP 4.4', 'PHP 5.0', 'PHP 5.1', 'PHP 5.2', 'PHP 5.3', 'PHP 5.4', 'PHP 5.5');
3+
$bins = array('php44', 'php50', 'php51', 'php52', 'php53', 'php54', 'php55');
4+
5+
$results = array();
6+
$max = 0;
7+
8+
foreach ($bins as $key => $bin) {
9+
for ($i = 1; $i <= 5; $i++) {
10+
switch ($bin) {
11+
case 'php44':
12+
case 'php50':
13+
if ($i >= 5) {
14+
continue 2;
15+
}
16+
}
17+
18+
echo "$bin col$i.php";
19+
20+
$result = substr(shell_exec("$bin col$i.php"), 8);
21+
if ($result[0] != ' ') {
22+
exit("FAILED ON $bin / col$i");
23+
}
24+
$result = substr($result, 1);
25+
if (!isset($results[$keys[$key]])) {
26+
$results[$keys[$key]] = array();
27+
}
28+
29+
$result2 = substr(shell_exec("$bin col$i.php"), 9);
30+
$elapsed = ($result + $result2) / 2;
31+
if ($elapsed > $max) {
32+
$max = $elapsed;
33+
}
34+
$results[$keys[$key]][] = $elapsed;
35+
36+
echo " = $elapsed\r\n";
37+
}
38+
}
39+
40+
echo "\r\n";
41+
42+
foreach ($results as $key => $result) {
43+
echo '<tr><td style="background: yellow"><b>' . $key . '</b></td>';
44+
for ($i = 0; $i < 5; $i++) {
45+
if (!isset($result[$i])) {
46+
echo '<td style="border: 0; background: white"></td>';
47+
continue;
48+
}
49+
$r = intval(($result[$i] / $max) * 255);
50+
$gb = 255 - $r;
51+
$r = str_pad(dechex($r), 2, '0', STR_PAD_RIGHT);
52+
$gb = str_pad(dechex($gb), 2, '0', STR_PAD_RIGHT);
53+
echo '<td style="background: #ff' . $gb . $gb . '">' . number_format($result[$i], 3) . '</td>';
54+
}
55+
echo '</tr>';
56+
echo "\r\n";
57+
}

0 commit comments

Comments
 (0)