It's possible.
Maybe too late, but I've worked on a pure-PHP
implementation here:
- SHA3-224/256/384/512
- SHAKE128/256 (arbitrary output size)
LGPL 3+
- Works in
PHP 5.2+
(considerably slower on older PHP
)
- No extensions required.
- Moderately well tested.
- Based on the (public domain) reference implementation in
C
.
- Arbitrary input size.
It is a simple and fast implementation in PHP
(which means far slower than C). Since this is purely "CPU-bound", PHP 7.0
runs 4x faster than PHP 5.6
. (55kB/s here)
Fine with a small input. Correctly handles a huge input, just hogs CPU
for minutes.
I hope it helps.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…