Skip to content

Commit 2e55d18

Browse files
author
Dusan Malusev
committed
Adding encryption/decryption benchmarks
Signed-off-by: Dusan Malusev <[email protected]>
1 parent d15f0da commit 2e55d18

File tree

1 file changed

+108
-8
lines changed

1 file changed

+108
-8
lines changed

README.md

Lines changed: 108 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
- [Using Dependency Injection](#using-dependency-injection-2)
2929
- [Advanced](#advanced)
3030
- [Encryption](#encryption)
31+
- [Benchmakrs](#benchmakrs)
32+
- [Encryption](#encryption-1)
33+
- [Decryption](#decryption)
3134
- [SHA256](#sha256)
3235
- [Using Hashing Facade](#using-hashing-facade)
3336
- [Using Dependency Injection](#using-dependency-injection-3)
@@ -427,29 +430,126 @@ LaravelCrypto library provides **2 additional encryption algorithms**. It uses d
427430
**If you have application which uses laravel default encryption and you have stored encrypted data in database, you will need to reencrypt the data with new algorithm!**
428431

429432
```php
430-
431-
use BrosSquad\LaravelCrypto\Encryption\SodiumEncryptor;
432433
// app.cofig
433434
return [
434435
// ...
435436

436437
// XChaCha20Poly1305 Algorithm
437-
'cipher' => 'XChaCha20Poly1305',
438-
438+
'cipher' => 'XChaCha20Poly1305',
439+
439440
// AES 256 GCM
440441
//!! Make sure you have hardware acceleration for
441442
// AES-256-GCM, it wont work if your sever does not support it !!
442443
'cipher' => 'AES-256-GCM',
443-
444-
// OR - By using constants
445-
'cipher' => SodiumEncryptor::AES256GCM,
446-
'cipher' => SodiumEncryptor::XChaCha20Poly1305,
447444

448445
// ..
449446
]
450447

451448
```
452449

450+
#### Benchmakrs
451+
452+
453+
##### Encryption
454+
455+
<table>
456+
<thead>
457+
<tr>
458+
<th>Subject</th>
459+
<th>Description</th>
460+
<th>Revs</th>
461+
<th>Iterations</th>
462+
<th>Memory Peak</th>
463+
<th>Best Time</th>
464+
<th>Average Time</th>
465+
<th>Worst Time</th>
466+
</tr>
467+
</thead>
468+
<tbody>
469+
<tr>
470+
<td>benchLaravelEncryption</td>
471+
<td>Default Laravel Encrypter (AES-256-CBC)</td>
472+
<td>100</td>
473+
<td>10</td>
474+
<td>2,259,976b</td>
475+
<td>952.012μs</td>
476+
<td>957.365μs</td>
477+
<td>974.771μs</td>
478+
</tr>
479+
<tr>
480+
<td>benchXChaCha20Poly1305</td>
481+
<td>XChaCha20Poly1305 Encryption</td>
482+
<td>100</td>
483+
<td>10</td>
484+
<td>2,458,008b</td>
485+
<td>265.780μs</td>
486+
<td>267.313μs</td>
487+
<td>270.197μs</td>
488+
</tr>
489+
<tr>
490+
<td>benchAes256gcm</td>
491+
<td>AES 256 GCM Encryption</td>
492+
<td>100</td>
493+
<td>10</td>
494+
<td>2,457,984b</td>
495+
<td>252.650μs</td>
496+
<td>254.105μs</td>
497+
<td>256.572μs</td>
498+
</tr>
499+
</tbody>
500+
</table>
501+
502+
503+
504+
##### Decryption
505+
506+
<table>
507+
<thead>
508+
<tr>
509+
<th>Subject</th>
510+
<th>Description</th>
511+
<th>Revs</th>
512+
<th>Iterations</th>
513+
<th>Memory Peak</th>
514+
<th>Best Time</th>
515+
<th>Average Time</th>
516+
<th>Worst Time</th>
517+
</tr>
518+
</thead>
519+
<tbody>
520+
<tr>
521+
<td>benchLaravelDecryption</td>
522+
<td>Default Laravel Decrypter (AES-256-CBC)</td>
523+
<td>100</td>
524+
<td>10</td>
525+
<td>2,508,208b</td>
526+
<td>1,661.467μs</td>
527+
<td>1,666.177μs</td>
528+
<td>1,677.097μs</td>
529+
</tr>
530+
<tr>
531+
<td>benchXChaCha20Poly1305Decryption</td>
532+
<td>XChaCha20Poly1305 Decryption</td>
533+
<td>100</td>
534+
<td>10</td>
535+
<td>2,529,600b</td>
536+
<td>455.560μs</td>
537+
<td>458.140μs</td>
538+
<td>465.492μs</td>
539+
</tr>
540+
<tr>
541+
<td>benchAes256gcmDecryption</td>
542+
<td>AES 256 GCM Decryption</td>
543+
<td>100</td>
544+
<td>10</td>
545+
<td>2,529,576b</td>
546+
<td>447.280μs</td>
547+
<td>449.552μs</td>
548+
<td>453.438μs</td>
549+
</tr>
550+
</tbody>
551+
</table>
552+
453553
### SHA256
454554

455555
#### Using Hashing Facade

0 commit comments

Comments
 (0)