如何在PHP中加密base64图像值

时间:2016-06-22 08:57:56

标签: php encryption encoding

我在这里使用文件上传,用户上传大图片意味着我想重新调整尺寸,也不想移动此图片中的任何临时文件夹,以便我可以使用 base64_encode() ,现在我正在得到正确的答案,我想做一件事,我想加密base64_encode图像值的值,怎么能做到这一点?

这里我得到了base64编码的图像值

$encodeimage =  base64_encode(file_get_contents($filename));
<?php
define ("MAX_SIZE","1000");
 $errors=0;
    $image =$_FILES["file"]["name"];
    $uploadedfile = $_FILES['file']['tmp_name'];
    $filetype = $_FILES['file']['type'];
      if ($image) 
      {
      $filename = stripslashes($_FILES['file']['name']);
      $extension = getExtension($filename);
      $extension = strtolower($extension);
     if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) 
      {
        $error_msg = ' Unknown Image extension ';
        $errors=1;
      }
     else{
         $size=filesize($_FILES['file']['tmp_name']);
        if ($size > MAX_SIZE*1024)
        {
         $error_msg = "You have exceeded the size limit";
         $errors=1;
        }

        if($extension=="jpg" || $extension=="jpeg" )
        {
        $uploadedfile = $_FILES['file']['tmp_name'];
        $src = imagecreatefromjpeg($uploadedfile);
        }
        else if($extension=="png")
        {
        $uploadedfile = $_FILES['file']['tmp_name'];
        $src = imagecreatefrompng($uploadedfile);
        }
        else 
        {
        $src = imagecreatefromgif($uploadedfile);
        }

        list($width,$height)=getimagesize($uploadedfile);

        $newwidth=600;
        /*$newheight=($height/$width)*$newwidth;*/
        $newheight=600;
        $tmp=imagecreatetruecolor($newwidth,$newheight);

        imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);

        $filename = $_FILES['file']['name'];

        imagejpeg($tmp,$filename,100);

        $encodeimage =  base64_encode(file_get_contents($filename));//here we got encodede image value

        $encrypt_image = "data:".$filetype.";base64,".$encodeimage;



        imagedestroy($src);
        imagedestroy($tmp);
        }
        }

        function getExtension($str) {

                 $i = strrpos($str,".");
                 if (!$i) { return ""; } 

                 $l = strlen($str) - $i;
                 $ext = substr($str,$i+1,$l);
                 return $ext;
         }

        $id_proof = array(/*"filename" =>$filename,*/
                          "base64_encodedimage" =>$encrypt_image,
                          "encryptedData" => $encrypted,
                          /*"error_msg" =>$error_msg,*/
                            );
        echo json_encode($id_proof)
?>

1 个答案:

答案 0 :(得分:0)

如果您想在编码后获取内容,请使用下面的代码来隐藏和显示

    $unencodedData=base64_decode($filteredData);
    file_put_contents("abc.jpg", $unencodedData);