我在用PHP进行加密/解密编码。有趣的东西!
但是,我遇到了一些涉及到什么文本被加密的问题。
下面是两个加密和解密字符串的函数。它使用一个加密密钥,我将其设置为一些模糊的东西。
我实际上是从一本PHP书中得到的。我稍微修改了一下,但并没有改变它的主要目标。
我在下面创建了一个任何人都可以测试的小例子。
但是,我注意到有些字符显示为“加密”字符串。像“=”和“+”这样的字符。
有时我通过URL传递这个加密字符串。这可能不太符合我的接收脚本。我猜如果看到某些字符,浏览器会对字符串做些什么。我只是在猜测。
是否还有其他功能可用于确保浏览器不接触字符串?或者有人知道足够的php bas64_encode()来禁止使用某些字符吗?我真的不希望后者成为可能。但是,我肯定有工作要做。
享受代码吧,任何人都需要它!
define('ENCRYPTION_KEY', "sjjx6a");
function encrypt($string) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr(ENCRYPTION_KEY, ($i % strlen(ENCRYPTION_KEY))-1, 1);
$char = chr(ord($char)+ord($keychar));
$result.=$char;
}
return base64_encode($result)."/".rand();
}
function decrypt($string){
$exploded = explode("/",$string);
$string = $exploded[0];
$result = '';
$string = base64_decode($string);
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr(ENCRYPTION_KEY, ($i % strlen(ENCRYPTION_KEY))-1, 1);
$char = chr(ord($char)-ord($keychar));
$result.=$char;
}
return $result;
}
echo $encrypted = encrypt("reaplussign.jpg");
echo "<br>";
echo decrypt($encrypted);