可以在PHP中使用按位异或在JavaScript字符串编码,并再次将其重新解码。我为你写了一个小例子。它在PHP中的工作原理是一样的。如果再次用已编码的字符串调用enc(),则会再次获得原始字符串。
<html>
<head><title></title></head>
<body>
<script type="text/javascript">
function enc(str) {
var encoded = "";
for (i=0; i<str.length;i++) {
var a = str.charCodeAt(i);
var b = a^123; // bitwise XOR with any number, e.g. 123
encoded = encoded+String.fromCharCode(b);
}
return encoded;
}
var str = "hello world";
var encoded = enc(str);
alert(encoded); // shows encoded string
alert(enc(encoded)); // shows the original string again
</script>
</body>
</html>
在PHP中做这样的事情(注意,这不是测试,这是一个很长一段时间,因为我做了PHP):
$encoded = "..."; // <-- encoded string from the request
$decoded = "";
for($i = 0; $i < strlen($encoded); $i++) {
$b = ord($encoded[$i]);
$a = $b^123; // <-- must be same number used to encode the character
$decoded .= chr($a)
}
echo $decoded;
通过在JavaScript这样客户可以很容易地查看源并解密您的加密字符串。 – Chris 2010-08-31 12:30:40
@Chris - 这不会造成问题;正如我在问题中所说的那样,这不是出于安全或保密的原因。 – 2010-08-31 12:36:16
这就是为什么我仅将它作为评论发布,以确保您知道这一切。正如其他人所说的任何哈希算法您的JavaScript和PHP可用将工作得很好。 md5,base64,sha都会工作。 – Chris 2010-08-31 12:37:02