如何在PHP中解密JavaScript window.btoa生成的Base64值?
在PHP中解密JavaScript btoa生成的内容
嘿,其实你这里用的window.btoa()并不是加密哦,它只是对字符串做了Base64编码而已!所以在PHP里我们直接用对应的Base64解码函数就能轻松还原出原始内容啦。
具体实现步骤:
- PHP中专门提供了解码Base64字符串的函数:
base64_decode(),你只需要把从URL获取到的参数传入这个函数就行。 - 修改你的PHP代码如下:
<?php // 获取URL中的Base64编码参数 $encodedURL = $_GET['url']; // 对Base64字符串进行解码 $decodedText = base64_decode($encodedURL); // 输出原始内容 echo $decodedText; ?>
测试效果:
当你访问链接www.domain.com/?url=c29tZSB0ZXh0时,上面的代码会输出:some text,也就是你JS里的原始输入内容。
额外小提示(针对中文场景):
如果你的输入包含中文,直接用window.btoa()会报错,因为它只支持ASCII字符。这时候JS里需要先把中文转成UTF-8的Base64格式,比如:
var input = '中文内容'; // 先转成UTF-8编码的字符串,再做Base64 var encrypt = btoa(encodeURIComponent(input));
对应的PHP解码时就要先Base64解码,再解码URI组件:
$decodedText = urldecode(base64_decode($encodedURL));
内容的提问来源于stack exchange,提问作者Thaju
相关产品推荐
相关产品推荐

