PHP base64_decode乱码要怎么弄啊?
程序员文章站
2022-03-17 17:58:59
...
比如说我现在要decode下面的字符串
$code = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA88pPKPqRTcVGKcVNrphzUtq9hs1eSgyO/+g9DEfOVeeHlhaEhnYPabBJkpCayg3wTUKkBIWF5iPbPKKQp5zzdcWyvUXRcrHPzW77zm7HeraPT+YpXJlHjOdhERrGWKglvZmcVbcBLTr8mOlH3JjWmRf51G+LKPjT3OhVcJqCPwF+gC5CggyYiuiVN2OtvVjt2Tb2cxrjtVLbRCKTBq+4EpabkkEzWmurWLtrFT2N2ANDRDtfTmSpeQdHlzenlbWOFk8r3ty3/UiAP4HY53o1pvj5zDo5vZwHe25aoFHxSEJ3q/8H1OlCjbdeEeyTXA8IBqO5tNYRutS++8HlerZ4rQIDAQAB';
$tests=base64_decode($code);
var_dump( $tests );
输出后是:
有没有大神告诉我这个咋弄啊
$mod='d61df77df0b16df298c4e87e0f281ff5262684e486c4b495f23997ec7c81bb8a70c7ed314a667b0f098bb608a967db6be4a820e1b9960accebd2360654ef1825e8198e1d957e9e280c151bb01163066809e732c200cb0e9c61ca6567e25efa208bf3629dec0e29a89d96433107c26c7c29a6e4a12a4dd4b8a2b89a61ef3f3267';
$exp='010001';
$key=base64_encode ( hex2bin ( "30819f300d06092a864886f70d010101050003818d0030818902818100{$mod}0203{$exp}" ) );
$tests=base64_decode($key);
var_dump( $tests );$tests=base64_decode($key);
var_dump( $tests );
输出内容是:
$mod='d61df77df0b16df298c4e87e0f281ff5262684e486c4b495f23997ec7c81bb8a70c7ed314a667b0f098bb608a967db6be4a820e1b9960accebd2360654ef1825e8198e1d957e9e280c151bb01163066809e732c200cb0e9c61ca6567e25efa208bf3629dec0e29a89d96433107c26c7c29a6e4a12a4dd4b8a2b89a61ef3f3267';
$exp='010001';
$key=base64_encode ( hex2bin ( "30819f300d06092a864886f70d010101050003818d0030818902818100{$mod}0203{$exp}" ) );
$tests=base64_decode($key);
var_dump( $tests );$tests=base64_decode($key);
var_dump( $tests );
输出内容是:
确定是hex2bin 而不是bin2hex?
$code = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA88pPKPqRTcVGKcVNrphzUtq9hs1eSgyO/+g9DEfOVeeHlhaEhnYPabBJkpCayg3wTUKkBIWF5iPbPKKQp5zzdcWyvUXRcrHPzW77zm7HeraPT+YpXJlHjOdhERrGWKglvZmcVbcBLTr8mOlH3JjWmRf51G+LKPjT3OhVcJqCPwF+gC5CggyYiuiVN2OtvVjt2Tb2cxrjtVLbRCKTBq+4EpabkkEzWmurWLtrFT2N2ANDRDtfTmSpeQdHlzenlbWOFk8r3ty3/UiAP4HY53o1pvj5zDo5vZwHe25aoFHxSEJ3q/8H1OlCjbdeEeyTXA8IBqO5tNYRutS++8HlerZ4rQIDAQAB';
$tests=base64_decode($code);
var_dump( $tests );
输出后是:
有没有大神告诉我这个咋弄啊
回复讨论(解决方案)
显然他还做了某种处理
这要看是什么项目的数据了
显然他还做了某种处理
这要看是什么项目的数据了
$mod='d61df77df0b16df298c4e87e0f281ff5262684e486c4b495f23997ec7c81bb8a70c7ed314a667b0f098bb608a967db6be4a820e1b9960accebd2360654ef1825e8198e1d957e9e280c151bb01163066809e732c200cb0e9c61ca6567e25efa208bf3629dec0e29a89d96433107c26c7c29a6e4a12a4dd4b8a2b89a61ef3f3267';
$exp='010001';
$key=base64_encode ( hex2bin ( "30819f300d06092a864886f70d010101050003818d0030818902818100{$mod}0203{$exp}" ) );
$tests=base64_decode($key);
var_dump( $tests );$tests=base64_decode($key);
var_dump( $tests );
输出内容是:
hex2bin
为什么要用到hex2bin函数
把十六进制值转换为 ASCII 字符?
显然他还做了某种处理
这要看是什么项目的数据了
$mod='d61df77df0b16df298c4e87e0f281ff5262684e486c4b495f23997ec7c81bb8a70c7ed314a667b0f098bb608a967db6be4a820e1b9960accebd2360654ef1825e8198e1d957e9e280c151bb01163066809e732c200cb0e9c61ca6567e25efa208bf3629dec0e29a89d96433107c26c7c29a6e4a12a4dd4b8a2b89a61ef3f3267';
$exp='010001';
$key=base64_encode ( hex2bin ( "30819f300d06092a864886f70d010101050003818d0030818902818100{$mod}0203{$exp}" ) );
$tests=base64_decode($key);
var_dump( $tests );$tests=base64_decode($key);
var_dump( $tests );
输出内容是:
确定是hex2bin 而不是bin2hex?
这就不知道你们要讨论什么问题了
正因为数据中有不可打印的字符,所以才使用了 base64 编码进行交换
要想知道数据的真实含义,至少需要看程序是怎么使用它的
感谢大家,问题我已经解决了,通过hex2bin转码后是显示不出来的,我做这个主要是关于JAVA和PHP的RSA的验签问题,由JAVA端使用ras签名后,传给PHP端做验签,由于PHP只能使用openssl生成的pem文件来做验签,而java端只给出了一串1024位的16进制的公钥字符串,弄了好久了,昨天晚上才弄好。
推荐阅读
-
太长的标题要截断?如何分别全角和半角以避免乱码_PHP
-
太长的标题要截断?如何分别全角和半角以避免乱码_PHP
-
hijack - php 这到底是要闹怎样啊 ...
-
php写下mysql中文乱码啊已经是utf8了
-
哪位高手推荐个mysql搬家工具啊要PHP的
-
hijack - php 这到底是要闹怎样啊 ...
-
linux - 自己写的项目,如果服务器配置url重写了,那原来已经写好链接怎么办?还是 .php 啊,要进入代码一起改成重写后格式吗?
-
linux - 自己写的项目,如果服务器配置url重写了,那原来已经写好链接怎么办?还是 .php 啊,要进入代码一起改成重写后格式吗?
-
哪位高手推荐个mysql搬家工具啊要PHP的
-
php写入mysql中文乱码啊,已经是utf8了