javascript - 通过 url 传递的加密文本不解码 Javascript

标签 javascript encryption url-encoding

我正在使用 URL 传递加密字符串,现在我可以解密它,因为加密字符串包含 + 符号。如何绕过这个,

我在 Javascript 中使用 AES 加密。

我的代码是,

<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js"></script>

window.location.href = "check.php?encr="+encodeURIComponent(CryptoJS.AES.encrypt(80,"qJB0rGtIn5UB1xG03efyCp"));

加密字符串为U2FsdGVkX184sTDp%2BB%2Bgpn07shpb6lqRzqTh4BLOMj4%3D

解密代码是,

var decrypted = CryptoJS.AES.decrypt("<?php echo urldecode($_GET["encr"]); ?>", "qJB0rGtIn5UB1xG03efyCp");

如何避免 + 符号。有什么解决办法吗?

最佳答案

$_GET 中的值已进行 URL 解码。不要再次解码它们,这就是导致您出现问题的原因。只需 echo $_GET['encore'] 即可。

请注意,您还应该对该值进行 json_encode 以确保输出正确的 Javascript 语法:

.decrypt(<?php echo json_encode($_GET['encr']); ?>)

关于javascript - 通过 url 传递的加密文本不解码 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34038404/

相关文章:

javascript - 有使用 fetch 和 flowjs 的例子吗?

Java & Windows-MY keystore - 重复的别名

Spring Boot 2 : Plus (+) sign is not getting encoded in query param

java - java中如何将unicode字符转换为实际字符?

javascript - 如何使用 jquery 将鼠标悬停在不同的元素上。

javascript - 如何检测后面没有另一个换行符的换行符?

javascript - 如何在 JavaScript 中的枚举类型名称中包含点字符?

java - 如何在没有文件 I/O 的情况下打印 SealedObject 加密数据?

security - 盐应该有多长才能使尝试字典攻击变得不可行?

ruby - 如何使用具有特殊字符的用户名或密码解析 FTP URL?