> php教程 > php手册 > 发短信?打电话?都会被老婆查?

发短信?打电话?都会被老婆查?

WBOY
풀어 주다: 2016-06-06 19:32:27
원래의
1056명이 탐색했습니다.

发短信?打电话?都会被老婆查。再来一利器对Ta说的的悄悄话存到图片中去吧! 完整demo包:http://www.codepearl.com/files/181.html PHP 源码与演示: 源码出处演示出处 ?php//from:http://www.codepearl.cominclude 'Simple.Stegonography.class.php';$a =

发短信?打电话?都会被老婆查。 再来一利器  对Ta说的的悄悄话存到图片中去吧!

完整demo包:http://www.codepearl.com/files/181.html PHP

源码与演示:源码出处 演示出处

发短信?打电话?都会被老婆查?
<?php
//from:http://www.codepearl.com
include 'Simple.Stegonography.class.php';


$a = new Stego();

//先把hello写到logo.png图片里面 保存生成的图片
header('Content-Type: image/png');
imagepng($a -> stegoIt('hello','logo.png',1000));


//根据上一步生成的图片获取里面的内容。记得先注释掉上一步哦
echo $a -> unStegoIt('example.php.png',1000)

?>
로그인 후 복사
<?php

/*
* from:http://www.codepearl.com
*/
class Stego{
	/*..........*/
	//@param $i image file
	//returns jpg or png or false if it isn't one of them
	/*.........*/
	private function mimeType($i)
    {
		$mime = getimagesize($i);
		
		$return = array($mime[0],$mime[1]);
		
		switch ($mime['mime'])
		{
			case 'image/jpeg':
					$return[] = 'jpg';
					return $return;
			case 'image/png':
					$return[] = 'png';
					return $return;
			default:
					return false;
		}
    }
	
	/*..........*/
	//@param $i image file
	//returns image resource
	/*.........*/
	private function createImage($i)
    {
		$mime = $this->mimeType($i);
		
		switch($mime[2]){
			case 'jpg':
				return imagecreatefromjpeg ($i);
			case 'png':
				return imagecreatefrompng ($i);
			
		}
			
    }
	
	
	/*..........*/
	//@param $text text
	//returns array of ASCII values of text
	/*.........*/
	private function toASCII($text)
	{
		$text = str_split($text);
		
		for($i=0;$i<count($text);$i++)
		{
			$text[$i] = ord($text[$i]);
			
		}
		
		return $text;
	}
	
	/*..........*/
	//@param $arr text
	//returns text
	/*.........*/
	private function fromASCII($arr)
	{
		$text = '';
		
		foreach($arr as $a)
		{
			
			$text .= chr($a);
		}
		
		return $text;
	}
	
	/*..........*/
	//@param $text text to place in image
	//@param $i image file
	//@param $steps which pixels should be changed
	//returns image resource or false if there is not enough space in the image to do it
	/*.........*/
	public function stegoIt($text,$i,$steps)
	{
		$im				=	$this->createImage($i);
		
		$mime			=	$this->mimeType($i);
		
		$pixelCount		= $mime[0]*$mime[1];
		
		/*THIS IS THE POINT WHERE YOU CAN CHANGE THE TEXT*/
		//encrypt it maybe?  The text is in $text
		/**/
		
		$ASCII			= $this->toASCII('5TEG0'.$text.'5TEG0');
		
		$textCounter	= 0;
		
		
		
		//Is there enough space for this text?
		if($pixelCount/$steps < strlen ('5TEG0'.$text.'5TEG0')/3)return false;
		
		
		for($x = 1;$x<=$mime[0];$x++)
		{
			for($y = 1;$y<=$mime[1];$y++)
			{
				if(($x*$y)%$steps == 0){
					$r = $ASCII[$textCounter];
					$g = $ASCII[$textCounter+1];
					$b = $ASCII[$textCounter+2];
					$textCounter+=3;
					imagesetpixel($im,$x,$y,imagecolorallocate($im, $r, $g, $b));
					if($textCounter > strlen ('5TEG0'.$text.'5TEG0'))return $im;
				}
				
			}
			
		}
			
		
		
		return $im;
		
	}
	
	/*..........*/
	//@param $i image file
	//@param $steps which pixels should be coded
	//returns image resource or false if there is not enough space in the image to do it
	/*.........*/
	public function unStegoIt($i,$steps)
	{
		$im				=	$this->createImage($i);
		
		$mime			=	$this->mimeType($i);
		
		$pixelCount		= $mime[0]*$mime[1];
		
		$textCounter	= 0;
		
		$ASCII			= array();
		

		
		
		for($x = 1;$x<=$mime[0];$x++)
		{
			for($y = 1;$y<=$mime[1];$y++)
			{
				if(($x*$y)%$steps == 0){
					$rgb = imagecolorat($im, $x, $y);
					$ASCII[] = ($rgb >> 16) & 0xFF;
					$ASCII[] = ($rgb >> 8) & 0xFF;
					$ASCII[] = $rgb & 0xFF;
					
				}
				
			}
			
		}
		preg_match('#5TEG0(.+?)5TEG0#',$this->fromASCII($ASCII),$txt);
		
		/*THIS IS THE POINT WHERE YOU CAN CHANGE THE TEXT*/
		//decrypt it maybe? The text is in $txt[1]
		/**/
		
		return $txt[1];
	}
}
로그인 후 복사
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿