所以我很困惑。我知道有很多用于JS的Base64编码器/解码器,但是没有用于JS的Base64编码器/解码器,到目前为止,在stackoverflow上的搜索已经枯竭。 我正在BLOGGER上尝试使用btoa()和atob()JS方法制作简单的加密脚本以进行加密,然后再次解密URL 在桌面浏览器上,它运行得很好,并且原始链接/ URL成功地重新生成,但是在移动浏览器上尝试时,由于博客作者在url末尾添加了这个后缀(?m = 1),导致所有内容混乱,最终链接确实不提供原始链接
这是我的密码
// that converts the original url to base64 through btoa()
<input id="myinput" type="text" name="search" />
<input id="shrt" type="submit" value="Shorten" onclick="myFunction()" />
<textarea id="m"></textarea>
<script>
function myFunction() {
var mm = document.getElementById("myinput").value;
var b64 = btoa(mm);
document.getElementById('m').innerHTML = "https://basebb.blogspot.com/p/go.html?url=" + b64;};
</script>
然后我使用window.location.href来获取链接并生成另一个以base64加密的链接
<a id="lnk" href="" style="font-size: 40px;">FirstLink</a>
<script>
var str = window.location.href;
var res = str.substr(42, );
var a = document.getElementById('lnk');
a.href = "https://basebb.blogspot.com/2018/09/art.html?url=" + res;
</script>
最后我使用atob()在此处恢复原始网址
<a id="lnk" href="" style="font-size: 40px;">FinalLink</a>
<script>
var str = window.location.href;
var str1 = str.substr(49, );
var a = document.getElementById('lnk');
a.href = atob(str1);
</script>
尝试(https://twitter.com/)可以给我 (https://basebb.blogspot.com/p/go.html?url=aHR0cHM6Ly90d2l0dGVyLmNvbS8=)
正如我所说的,它在台式机上运行良好,但是在第二次重定向后在移动设备上,它给了我
(https://basebb.blogspot.com/p/go.html?url=aHR0cHM6Ly90d2l0dGVyLmNvbS8%3D&m=1)
请注意,结尾处(%3D&m = 1)会引起所有问题
另一个问题是,此(%3D&m = 1)随着每个链接的长度和字符的改变而改变
我尝试了许多方法,例如substr(),slice(),replace(),但没有一种方法有效,问题仍然存在
请帮忙吗? 对不起,我的英语不好