我正在使用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");如何避免+符号。有没有解决办法。
发布于 2015-12-02 09:32:26
我知道答案了
加密,
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js"></script>
window.location.href = "check.php?encr="+CryptoJS.AES.encrypt(80,"qJB0rGtIn5UB1xG03efyCp");解密,
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js"></script>
$q = urlencode($_GET["encr"]);
$q = str_replace("+", "%2B",$q);
$q = urldecode($q);
var decrypted = CryptoJS.AES.decrypt("<?php echo $q; ?>", "qJB0rGtIn5UB1xG03efyCp");发布于 2015-12-02 08:54:44
$_GET中的值已经被URL解码。不要再对它们进行解码,这就是引起你问题的原因。简单地说echo $_GET['encore']就行了。
请注意,还应该使用json_encode值来确保输出正确的Javascript语法:
.decrypt(<?php echo json_encode($_GET['encr']); ?>)https://stackoverflow.com/questions/34038404
复制相似问题