Ir para conteúdo

POWERED BY:

Arquivado

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

rafa-martin

criptografia

Recommended Posts

tenho um campo texto que é passado via querystring (get). então, quando eu digito a informação na caixa de texto, passo via querystring, dessa forma:

 

<script language="JavaScript">

 

function ln()

{

var busca = document.getElementById('txtValor').value;

frm1.action = "pagina.php?vl="+busca;

frm1.submit();

}

</script>

 

preciso que a variável busca seja criptograda. aí na página que resgato ela, preciso descriptografar.

 

como posso fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso aí não tem problema. eu sei fazer isso...

 

o que eu digo é que quando eu clicar no botão eu chamo essa função em javascript.

 

function ln()

{

var busca = document.getElementById('txtValor').value;

frm1.action = "pagina.php?vl="+busca;

frm1.submit();

}

</script>

 

veja que no link o campo passo como parâmetro (frm1.action = "pagina.php?vl="+busca;). e quando faço isso, minha url fica assim http://localhost/site/lista.php?vl=ana. Ou seja, o valor ana tem que ir criptografado. aí na página que resgato esse valor eu descriptografo. Entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

velho... tenho meu form:

 

						<form name="frm1" id="frm1" method="post">
							<label>localizar aluno</label>
							<input type="text" class="field small-field" name="txtValor" id="txtValor" value="<?php echo $vl_busca ?>" onkeypress="return EnviaFormulario(event,this,'list_notas.php?vl=');" />
							<input type="button" class="button" value="localizar" onclick="localiza_nota();"/>
						</form>

 

quando eu digitar um valor no campo txtValor, veja que no meu botão estou chamando a função javascript localiza_nota. a função é essa:

 


<script language="JavaScript">

function localiza_nota()
{
	var busca = document.getElementById('txtValor').value;
	frm1.action = "list_notas.php?vl="+busca;
	frm1.submit();
}
</script>

 

veja na minha função que estou pegando o valor digitado no campo texto txtValor e enviando como parâmetro (via query string). faço isso para depois resgatar o valor digitado e buscar no banco os dados que preciso. o que preciso é que quando for digitado o valor no campo texto txtValor, minha função pegue o valor já criptografado (usando base64_encode). na minha página list_notas.php eu vou pegar esse valor e descriptografar (usando base64_decode).

 

entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

pelo que entendi, o que você quer então é encodar uma string em base64 usando javascript da mesma forma que você faz usando PHP.

 

O projeto php.js tem a função base64_encode (equivalente ao do PHP) para javascript:

http://phpjs.org/functions/base64_encode:358

 

Esse projeto, aliás, busca trazer funções do PHP para o javascript.

 

Ah, sim: observe que esta função é dependente da utf8_encode:

http://phpjs.org/functions/utf8_encode:577

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz uma página html dessa forma:

 

<script>
function base64_encode (data) {
    // Encodes string using MIME base64 algorithm
    //
    // version: 1109.2015
    // discuss at: http://phpjs.org/functions/base64_encode    // +   original by: Tyler Akins (http://rumkin.com)
    // +   improved by: Bayron Guevara
    // +   improved by: Thunder.m
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Pellentesque Malesuada    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Rafal Kukawski (http://kukawski.pl)
    // -    depends on: utf8_encode
    // *     example 1: base64_encode('Kevin van Zonneveld');
    // *     returns 1: 'S2V2aW4gdmFuIFpvbm5ldmVsZA=='    // mozilla has this native
    // - but breaks in 2.0.0.12!
    //if (typeof this.window['atob'] == 'function') {
    //    return atob(data);
    //}    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,
	ac = 0,
	enc = "",
	tmp_arr = [];
    if (!data) {
	return data;
    }
     data = this.utf8_encode(data + '');

    do { // pack three octets into four hexets
	o1 = data.charCodeAt(i++);
	o2 = data.charCodeAt(i++);        o3 = data.charCodeAt(i++);

	bits = o1 << 16 | o2 << 8 | o3;

	h1 = bits >> 18 & 0x3f;        h2 = bits >> 12 & 0x3f;
	h3 = bits >> 6 & 0x3f;
	h4 = bits & 0x3f;

	// use hexets to index into b64, and append result to encoded string        tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
    } while (i < data.length);

    enc = tmp_arr.join('');
	var r = data.length % 3;

    return (r ? enc.slice(0, r - 3) : enc) + '==='.slice(r || 3);
}


function botao(pCampo)
{
	var valor = document.getElementById('txtcampo').value;
	var x = base64_encode(valor);
	alert(x);
}
</script>

<form name="frm1" id="frm1" method="">
<input type="text" name="txtcampo" id="txtcampo">
<br>
<input type="button" name="ok" id="ok" value="ok" onclick="botao(document.frm1.txtcampo.value);">
</form>


 

qual o problema?

 

está me dando erro dizendo que o objeto não dá suporte.

 

encontrei essa solução

http://ntt.cc/2008/01/19/base64-encoder-decoder-with-javascript.html

 

para resgatar o valor do parâmetro faço o seguinte: $valor = $_GET["vl"]. Minha dúvida é: eu consigo, chamar uma função javascript passando como parâmetro o valor da variável $valor (que está em php)?

 

encontrei essa solução

http://ntt.cc/2008/0...javascript.html

 

para resgatar o valor do parâmetro faço o seguinte: $valor = $_GET["vl"]. Minha dúvida é: eu consigo, chamar uma função javascript passando como parâmetro o valor da variável $valor (que está em php)?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pega dentro da função javascript o parâmetro GET usando essa função do Gustavo

 

/**

* Created by: http://gustavopaes.net

* Created on: Nov/2009

*

* Retorna os valores de parâmetros passados via url.

*

* @param String Nome da parâmetro.

*/

function _GET(name)

{

var url = window.location.search.replace("?", "");

var itens = url.split("&");

 

for(n in itens)

{

if( itens[n].match(name) )

{

return decodeURIComponent(itens[n].replace(name+"=", ""));

}

}

return null;

}

 

Só por curiosidade, tu sabe que se tu colocar o formulário com o método GET automaticamente ele vai passar os valores dos campos na URL que está no action do form né?

 

Outra coisa sobre criptografar dados via URL eu fiz meu TCC sobre isso na época da facu

para passar string via GET você mesmo pode usar uma funçao sua de cripto.

 

 

exemplo

 

Valor Ana

 

você pode desenvolver inúmeros scripts um deles é gerar uma chave

 

AnaanbdhhhHiJkLmNoP

 

aí só bagunçar a string com sua imaginação na IDA, quando capturar valor no outro script você faz a reversão. Como você mesmo criou o script que "embaralha" string. É só criar o reverso. Não sei se fui claro

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu já tenho uma função para descriptografar o valor passado (justamente o link acima, no site de referência).

estou dizendo numa página php.

 

a variável $valor estará criptografa. então eu precisaria chamar a função javascript que descriptografa. por exemplo:

 

<?php

$valor = $_GET["vl"];

//aqui eu chamaria a função ajavascript para descriptografar. porque aí preciso fazer consultas no banco.

?>

como eu faria isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você tem a funcao javascript que descriptografa o mais correto e é escrever ela em php tb.

 

Tudo que você conseguiu criptografar com js você reverte com php.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu sei. o que eu quero é saber como chama a função javascript naquele bloco de código (php). exemplo:

 

<?php

$valor = $_GET["vl"];

//aqui eu chamaria a função javascript.

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

rafa-martin, você se esqueceu da função utf8_encode, necessária para o funcionamento de base64_encode. O link está na minha mensagem anterior (post #6).

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.