Skip to content

Commit 4f4d3d5

Browse files
committed
base32 simplify
1 parent 61a5d67 commit 4f4d3d5

File tree

1 file changed

+8
-15
lines changed

1 file changed

+8
-15
lines changed

Diff for: src/Base32.php

+8-15
Original file line numberDiff line numberDiff line change
@@ -58,28 +58,21 @@ public static function decode(string $chars, array $table = self::base32_decode_
5858
{
5959
if (empty($chars)) return '';
6060
$length = strlen($chars);
61-
while ($chars[$length - 1] === '=') {
62-
$length--;
63-
}
61+
while ($chars[$length - 1] === '=') $length--;
62+
6463
$padding_length = 8 - $length % 8;
6564
if ($padding_length === 8) $padding_length = 0;
6665

67-
if ($padding_length > 0) {
68-
for ($i = 0; $i < $padding_length; $i++) $chars .= '=';
69-
$length += $padding_length;
70-
}
71-
72-
7366
$result = [];
7467
for ($i = 0; $i < $length; $i += 8) {
7568
$a = $table[$chars[$i]];
7669
$b = $table[$chars[$i + 1]];
77-
$c = $table[$chars[$i + 2]] & 0x1f;
78-
$d = $table[$chars[$i + 3]] & 0x1f;
79-
$e = $table[$chars[$i + 4]] & 0x1f;
80-
$f = $table[$chars[$i + 5]] & 0x1f;
81-
$g = $table[$chars[$i + 6]] & 0x1f;
82-
$h = $table[$chars[$i + 7]] & 0x1f;
70+
$c = $table[$chars[$i + 2] ?? '='] & 0x1f;
71+
$d = $table[$chars[$i + 3] ?? '='] & 0x1f;
72+
$e = $table[$chars[$i + 4] ?? '='] & 0x1f;
73+
$f = $table[$chars[$i + 5] ?? '='] & 0x1f;
74+
$g = $table[$chars[$i + 6] ?? '='] & 0x1f;
75+
$h = $table[$chars[$i + 7] ?? '='] & 0x1f;
8376

8477

8578
$x = (($a << 5) | $b) >> 2;

0 commit comments

Comments
 (0)