可以在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