我想用这个:
<?php
$string1 = 'V2h5IEkgY2FuJ3QgZG8gdGhpcyEhISEh';
echo base64_decode($string1);
?>
Run Code Online (Sandbox Code Playgroud)
此示例的输出应始终为 18 个字符!但有时这个输出小于18。
24(base64 字符)乘以 6(每个 base64 字符的位数)等于 144(位)除以 8(每个 ASCII 字符的位数)等于 18 个 ASCII 字符。
问题是输出以纯文本显示;并且某些字符甚至没有“文本表示”,并且该数据将丢失。下一个测试将显示有 41 个不同的 ASCII 字符没有可见输出。
<?php
for ($i = 0; $i <= 255; $i++) {
$string2 = chr($i);
echo $i . " = " . $string2 . "<br>";
}
?>
Run Code Online (Sandbox Code Playgroud)
我的计划是解码 base64 字符串,然后从 ASCII 输出中将其重新转换为十六进制。现在这是不可能的,因为这 41 个字符。
我也试过,base_convert但没有 base64 支持。
你可以这样做bin2hex():
返回一个包含 str 的十六进制表示的 ASCII 字符串。转换是按字节完成的,首先是高半字节。
php > $string1 = 'V2h5IEkgY2FuJ3QgZG8gdGhpcyEhISEh';
php > echo base64_decode($string1);
Why I can't do this!!!!!
php > echo bin2hex(base64_decode($string1));
57687920492063616e277420646f20746869732121212121
php >
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8865 次 |
| 最近记录: |