Ir para conteúdo

POWERED BY:

Arquivado

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

Wesley F Souza

Como definir quantos caracteres irão criptografados com base64_encode?

Recommended Posts

vixi, você quer criptografar um número exato se ele for passado no GET?

 

mais esse número é apenas o número, exemplo: 7

 

ou

 

7382937

 

e todos os 7 ele criptografar?

 

se for vai ter que trabalhar com a função str_replace

 

$id = $_GET['id'];
$codificacao = base64_encode(7);
$new_id = str_replace("7", $codificacao, $id);

Compartilhar este post


Link para o post
Compartilhar em outros sites

vixi, você quer criptografar um número exato se ele for passado no GET?

 

mais esse número é apenas o número, exemplo: 7

 

ou

 

7382937

 

e todos os 7 ele criptografar?

 

se for vai ter que trabalhar com a função str_replace

 

$id = $_GET['id'];
$codificacao = base64_encode(7);
$new_id = str_replace("7", $codificacao, $id);

 

 

Um exemplo: ID=01; Criptografado ID=G065Ssjfz1265a; ID=10626541; Criptografado ID=H598a5s2a6AF5a;

 

Não importa se ele é formado por 2 números ou 6 queria que ele tivesse o mesmo tamanho, igual aos vídeos do youtube.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O tamanho da criptografia varia de acordo com a string criptografada, se deseja criptografar qualquer string com a mesma quantidade de caracteres. Use outra criptografia, shas512 por exemplo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu não conheço uma função especifica mais trabalhe com o subtr também

 

$id = substr(base64_encode($_GET['id']),0, 8);

 

ele vai cortar o encodamento da variável, começa do 0 e para no 8.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu não conheço uma função especifica mais trabalhe com o subtr também

 

$id = substr(base64_encode($_GET['id']),0, 8);

 

ele vai cortar o encodamento da variável, começa do 0 e para no 8.

 

Irá funcionar Vinicius, porém o valor não será o mesmo do definido quando a string estiver desencriptada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O tamanho da criptografia varia de acordo com a string criptografada, se deseja criptografar qualquer string com a mesma quantidade de caracteres. Use outra criptografia, shas512 por exemplo.

 

como ficaria esse shas512 ? nunca ouvi falar O.o

Compartilhar este post


Link para o post
Compartilhar em outros sites

$string = "Wanderson Valério";
$string = hash("sha512", $string);
echo $string;
// Imprimirá: ee8f1b7e8caf001b35d3aeddeb8277205470c076643392c3bf203b7cfa6a82a413c47b5d92435db08a87ed72feb52c401a32bd53ca566ab35249fe475750b2e3

 

E depois, para pegar o valor:

 

$string = "ee8f1b7e8caf001b35d3aeddeb8277205470c076643392c3bf203b7cfa6a82a413c47b5d92435db08a87ed72feb52c401a32bd53ca566ab35249fe475750b2e3";
$string = hash("sha512", $string);

 

Só tem um porém, você não saberá quais são os dados visualmente, o script saberá, você não.

Compartilhar este post


Link para o post
Compartilhar em outros sites

$string = "Wanderson Valério";
$string = hash("sha512", $string);
echo $string;
// Imprimirá: ee8f1b7e8caf001b35d3aeddeb8277205470c076643392c3bf203b7cfa6a82a413c47b5d92435db08a87ed72feb52c401a32bd53ca566ab35249fe475750b2e3

 

E depois, para pegar o valor:

 

$string = "ee8f1b7e8caf001b35d3aeddeb8277205470c076643392c3bf203b7cfa6a82a413c47b5d92435db08a87ed72feb52c401a32bd53ca566ab35249fe475750b2e3";
$string = hash("sha512", $string);

 

Só tem um porém, você não saberá quais são os dados visualmente, o script saberá, você não.

é essa a intenção mas, não teria como limitar os caracteres? tipo ter no máximo 10 ou 8 ou 15? pq ai tem tantos caracteres.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando você quer um número exato de caracteres, deixa de ser criptografia e se torna um hash, pois normalmente você não poderá "descriptografar" e essa é a ideia de um hash.

 

Para mais detalhes sobre o que é um hash:

http://pt.wikipedia.org/wiki/Hash

 

O hash mais conhecido é o md5, que devolve uma string com 32 caracteres. Foi, e ainda é, muito utilizado para senhas, visto que o probabilidade de colisão é quase zero (apesar de existir colisão).

 

Colisão é quando duas palavras distintas podem gerar a mesmo mesmo hash.

 

A probabilidade de colisão aumenta, podendo-se dizer exponencialmente, conforme se reduz a quantidade de caracteres.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara criptografar num teria pelo que sei fazer desse jeito

Mais seria uma boa ideia mais ou menos assim inserir 3 numeros aleatorios antes do id e depois do id

Ai ficaria mais ou menos assim

 

www.seusite.com.br?poste=7588685

 

O oito seria o id e os outros seria numeros aleatorios gravados

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara criptografar num teria pelo que sei fazer desse jeito

Mais seria uma boa ideia mais ou menos assim inserir 3 numeros aleatorios antes do id e depois do id

Ai ficaria mais ou menos assim

 

www.seusite.com.br?poste=7588685

 

O oito seria o id e os outros seria numeros aleatorios gravados

 

 

e como ficari isso no php?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara criptografar num teria pelo que sei fazer desse jeito

Mais seria uma boa ideia mais ou menos assim inserir 3 numeros aleatorios antes do id e depois do id

Ai ficaria mais ou menos assim

 

www.seusite.com.br?poste=7588685

 

O oito seria o id e os outros seria numeros aleatorios gravados

 

E como o PHP iria tratar esse dados para saber o id correto ronal-gato? E se o id chegasse ao número de decimal?

Compartilhar este post


Link para o post
Compartilhar em outros sites

E como o PHP iria tratar esse dados para saber o id correto ronal-gato? E se o id chegasse ao número de decimal?

Sim seria uma camuflagem somente contar os 3 primeiros e os 3 ultimo e o resto serio o id da postagens

Recomendo que na coluna onde você ira salvar criar mais 1 com a colunar url para que não tenho que mudar o id do poste

Tente desse jeito me desculpe pela demora tive que passar no medico e ontem a noite ja tava morrendo de sono

 

<?php
$link = mysql_connect('localhost', 'root', '');
if (!$link) {
   die('Erro na conexão: ' . mysql_error());
}
mysql_select_db('url');
?>

<?php
function aleatorio(){
$novo_valor= "";
$valor = "0123456789";
srand((double)microtime()*1000000);
for ($i=0; $i<3; $i++){
$novo_valor.= $valor[rand()%strlen($valor)];
}
return $novo_valor;
}
mysql_query("INSERT INTO tabela (campo) values ('teste')");
$id = mysql_insert_id();
$numero = aleatorio().$id.aleatorio();
echo $numero;
?>

 

Caso queira aumentar o numero para que apesa mais que 3 numeros somente alterar nessa linha

 

for ($i=0; $i<3; $i++){

 

So colocar um numero maior ou menor que esse 3 que esta aqui

$i<3;

 

Esse codigo utilize na hora de cadastrar os postes qual quer coisa so falar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim seria uma camuflagem somente contar os 3 primeiros e os 3 ultimo e o resto serio o id da postagens

Recomendo que na coluna onde você ira salvar criar mais 1 com a colunar url para que não tenho que mudar o id do poste

Tente desse jeito me desculpe pela demora tive que passar no medico e ontem a noite ja tava morrendo de sono

 

<?php
$link = mysql_connect('localhost', 'root', '');
if (!$link) {
   die('Erro na conexão: ' . mysql_error());
}
mysql_select_db('url');
?>

<?php
function aleatorio(){
$novo_valor= "";
$valor = "0123456789";
srand((double)microtime()*1000000);
for ($i=0; $i<3; $i++){
$novo_valor.= $valor[rand()%strlen($valor)];
}
return $novo_valor;
}
mysql_query("INSERT INTO tabela (campo) values ('teste')");
$id = mysql_insert_id();
$numero = aleatorio().$id.aleatorio();
echo $numero;
?>

 

Caso queira aumentar o numero para que apesa mais que 3 numeros somente alterar nessa linha

 

for ($i=0; $i<3; $i++){

 

So colocar um numero maior ou menor que esse 3 que esta aqui

 

Esse codigo utilize na hora de cadastrar os postes qual quer coisa so falar

 

 

Desse jeito aki deu certoo, só que tem algum jeito de criptografar o id inteiro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como criptografar o id inteiro ?

Não intendi explique melhor o que você esta pensando em fazer?

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.