使用带有密钥的base64在PHP中进行数据加密

时间:2014-09-25 09:59:53

标签: php encryption encoding base64

我使用base64进行加密和解密。

但是对于某些值,加密数据没有正确解密并添加特殊字符。 使用当前密钥,单词'skype'没有正确加密和解​​密,而是在解密时出现特殊字符。

任何人都可以告诉我,问题是什么? (代码在Google上很简单,但我查了博客和论坛,找不到任何与此问题相关的东西,这意味着问题在我的代码中)

encrypt.php

<?php
$id= $_GET['id'];
$encrypted = encrypt($id, "check");
echo $encrypted ;
function encrypt($string, $key) 
{
   $result = '';
   for($i=0; $i<strlen($string); $i++) {
     $char = substr($string, $i, 1);
     $keychar = substr($key, ($i % strlen($key))-1, 1);
     $char = chr(ord($char)+ord($keychar));
     $result.=$char;
   }
   return base64_encode($result);
}
?>

decrypt.php

<?php
$id= $_GET['id'];
$decrypted = decrypt($id, "check");
echo $decrypted ;
function decrypt($string, $key) 
{
   $result = '';
   $string = base64_decode($string);
   for($i=0; $i<strlen($string); $i++) {
      $char = substr($string, $i, 1);
      $keychar = substr($key, ($i % strlen($key))-1, 1);
      $char = chr(ord($char)-ord($keychar));
      $result.=$char;
   }
   return $result;
}
?>

1 个答案:

答案 0 :(得分:4)

基本上...