7

我尝试使用 base64_encode() 和 base64_decode() 但使用自定义字母表。默认字母为:

"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"

说我想使用:

"ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba9876543210+/" 

在互联网上找到了一门课程,但没有按预期工作。关于如何尽可能简单地实现这一点的任何想法?

4

2 回答 2

17

超简单,strtr开箱即用:

$default = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
$custom  = "ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba9876543210+/";

$encoded = strtr(base64_encode($input), $default, $custom);
于 2012-11-16T13:51:54.757 回答
2

除了上面定义的自定义编码之外,要使用自定义字母进行解码,您可以执行以下操作:

    $custom = 'ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba9876543210+/';
    $default = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
    $decoded = base64_decode(strtr($input, $custom, $default));
于 2017-08-30T15:38:46.140 回答