Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Tiago Emerick

criptografar value video

Recommended Posts

Olá pessoal, estou com um problema. Não consigo criptografar a parte de value do video. Desejo criptografar esta parte para ninguém poder fazer os daownloads dos videos do meu site, mas só que quando eu ponho sha1() e a variável dentro para ser criptografado não da certo, gostaria de saber se preciso criar alguma função ou se ja existe uma função php para este tipo de problema. Segue meu código abaixo:

 


<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<label for="video">Adicione um video do youtube:</label>
<input type="text" name="video" />
<input type="submit" value="enviar" name="submit" id="submit" />
</form>

<?php 

$video = $_POST['video'];

echo '<object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/' . sha1($video) . '&hl=pt-br&fs=1"></param><param name="wmode" value="transparent"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/' . sha1($video)	. '&hl=pt-br&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" width="425" height="344"></embed></object>';

?>

 

este código ele não apresenta erro, mais também o video não aparece.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que com server-side não tem como fazer isso que você quer. A melhor solução para você é usando javascript. Como sou leigo em javascript posso estar falando m*****, mas suponho que você possa retirar ou criptografar a value depois que o video já estiver incorporado na página.

 

Vale ressaltar que você está trabalhando com o youtube, portanto quando você clicar no vídeo o mesmo irá te levar para a página original, quebrando assim o seu proposito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu pensei em javascript tb...os videos do youtube eu coloquei com um exemplo só...mas estou vendo agora que há diferença para encriptar videos puxados pelo youtube e que estao hospedados no servidor...

Compartilhar este post


Link para o post
Compartilhar em outros sites

SHA1 é um hash unidirecional. O que isso significa? Que não podemos descriptografá-lo.

Eu não entendi por que você não quer deixar o usuário baixar o vídeo, afinal está no youtube...

 

Anyway, no seu caso, use as funções base64

:seta: http://php.net/manual/en/function.base64-encode.php

:seta: http://php.net/manual/en/function.base64-decode.php

 

Aí você pode aplicar um algoritmo de criptografia de '2 mãos'...

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá henrique Desculpe a ignorância, mas nesse tipo de função eu só estou conseguindo criar para ele adionar o valor do video no banco de dados encriptado mas quando eu faço a requisição e vai para o echo ele vai descriptografado já. E eu queria que no echo aparecesse encriptado.

Mas provavelmente eu estou pensando do modo errado.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está armazenando no banco o endereço original então?

 

O problema é que pra exibir na página você tem que colocar o endereço correto, se não ele não tem como buscar no youtube.

Novamente: qual a necessidade de impedir o download? Afinal os vídeos estão no youtube...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O objetivo é de aprendizado só, mas e se em um futuro próximo tiver alguns videos hospedados em meu site que são transmitidos por streaming e não quiser que ninguém baixe, ai vou ter que criptografar o value, seguindo a mesma lógica de raciocínio que com videos do youtube, mas claro com algumas diferenças.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com o youtube não dá pra fazer, pq você não tem como você passar o valor hasheado ou criptografado pra ele.

Quando for interno ao seu site, aí você pode fazer o que está querendo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Henrique, novamente. Na verdade nem interno eu consigo. Porque só consigo passar os dados para a string decodificados ou seja com base64_decode() e assim a pessoa pode ver o nome e extensão do arquivo ainda.

 

segue o código abaixo se você tiver mais alguma dica eu agradeço:

 


<?php

$valor = 'Bondinho.mp4';

$teste = base64_encode($valor);

echo $teste;

$k = base64_decode($teste);

echo $k;
?>


<?php echo '<object classid="clsid:6bf52a52-394a-11d3-b153-00c04f79faa6" width="471" height="434" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701"><param name="id" value="MediaPlayer" /><param name="FileName" value="http://localhost/video/' . base64_decode($teste) . '" /><param name="AnimationatStart" value="false" /><param name="TransparentatStart" value="false" /><param name="AutoStart" value="false" /><param name="ShowControls" value="1" /><param name="ShowStatusBar" value="1" /><param name="autoSize" value="false" /><embed id="MediaPlayer" type="application/x-mplayer2" width="471" height="434" autosize="false" showstatusbar="1" showcontrols="1" autostart="false" transparentatstart="false" animationatstart="false" filename="http://localhost/video/' . base64_decode($teste) . '"></embed></object>' ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, não tem jeito... Se for em servidor externo é impossível fazer o que você quer...

Se fosse no seu próprio servidor, você poderia usar htaccess e utilizar um handler em PHP para buscar o video decodificando a string e usar headers para dizer que aquilo é um arquivo de video...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Henrique eu fiz o que você falou...estou testando alguns códigos e criando htacces....Até o momento já consegui bloquear downloads de sites externos usando o value com htaccess...agora só me tira uma dúvida é possivel a string do embed/value (é onde fica o caminho do video ex.: www.meusite.com/video.mp4) sair codificada no código fonte? Eu já tentei criar um monte de algoritimo usando base64_encode e base64_decode, mas até o momento nao obtive exito em deixar a string codificada no código fonte, simplesmente o video nao retorna.

 

Valew, e desculpa ai pela insistência.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem que colocar uma página PHP como embed.

Nessa página, coloque headers com o content type de um video e o exiba...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.