我在php中使用加密/解密編碼。有趣的東西!
但是,我遇到了一些問題,涉及什麼文本被加密到。使用base64_encode()的文本混淆處理
這是加密和解密一個字符串的兩個函數。它使用了一個加密密鑰,我將其設置爲模糊的。 我其實從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);