Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá gostaria de saber como faço para inserir traço em uma sha512 exemplo no script abaixo me gera 10 sha512 gostaria que a hash apareça assim,
4dff4ea3-40f0-a823-f15d3-f4f01ab62eae0-e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a
note que na hash apareceu cinco ( - ) logo no inicio dela como faço para ao gerar a hash inserir esses 5 traços.
<?php
$temp = "\r\n";
$n=1;
for ( $number = 1 ; $number <= 10 ; ++$number ) {
$variavel = hash('sha512', $number)."";
do {
$lucky = hexdec(substr($variavel,0,8));
} while ($lucky > 4294960000);
$n++;
echo ' HASH '.$variavel.' = '.$number.'<br />' ;
}
Desde já agradeço a atenção de todos e uma ótima semana>
9 horas atrás, Gabriel Heming disse:
O que determina a inserção dos traços?
olá eu preciso que a hash sai dessa maneira
Exemplo Correto, Hash Numero 1 = 6b86b273-9d6b-804e-ff5a-3f5747ada4eaa22f1d49c01e52ddb7875b4bb
Nesse exemplo depois de 8 caracteres e incluindo um - depois aparece mais 3 traços apos 4 caracteres .
eu fiz um codigo postado aqui abaixo, se testar esse script no phptester a hash aparece assim.
Hash Numero 1 = 6b86b273-9d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4bb
eu preciso que ela saia igual ao exemplo correto será incluido 4 caracteres.
<?php
$temp = "\r\n";
$n=1;
for ( $number = 1 ; $number <= 5 ; ++$number ) {
$variavel = hash('sha256', $number)."";
do {
$lucky = hexdec(substr($variavel,0,8));
} while ($lucky > 4294960000);
$n++;
echo ' Hash ',' Numero '.$number.' = ', substr_replace( $variavel, '-', 7, 7 ), substr( $variavel, -1 ),'<br />';
}
obrigada pela atenção tenha uma ótima noitecoloca uma gambis que rola;
$mascara = hash('sha256', $number)
$arr = str_split($mascara);
$x=0;
$juntis='';
foreach ($arr as $test) {
$x++;
if($x==5){
$juntis.=$test."-";
}else if($x==9)
{
$juntis.=$test."-";
}
else if($x==13)
{
$juntis.=$test."-";
}else if($x==17)
{
$juntis.=$test."-";
}
else if($x==30)
{
$juntis.=$test."-";
}
else{
$juntis.=$test;
}
}
echo $juntis;>
7 horas atrás, bross lightyear disse:
coloca uma gambis que rola;
$mascara = hash('sha256', $number)
$arr = str_split($mascara);
$x=0;
$juntis='';
foreach ($arr as $test) {
$x++;
if($x==5){
$juntis.=$test."-";
}else if($x==9)
{
$juntis.=$test."-";
}
else if($x==13)
{
$juntis.=$test."-";
}else if($x==17)
{
$juntis.=$test."-";
}
else if($x==30)
{
$juntis.=$test."-";
}
else{
$juntis.=$test;
}
}
echo $juntis;
legal essa soluçao só que surgiu um problema no primeiro codigo postado nessa parte do codigo abaixo ele me da 5 resultados.
<?php
for ( $number = 1 ; $number <= 5 ; ++$number) {
fiz uma implementação abaixo e so aparece um resultado o que pode ser ? codigo abaixo
<?php
$temp = "\r\n";
$n=1;
for ( $number = 1 ; $number <= 5 ; ++$number) {
$mascara = hash('md5', $number)."";
}
$arr = str_split($mascara);
$x=0;
$juntis='';
foreach ($arr as $test) {
$x++;
if($x==8){
$juntis.=$test."-";
}else if($x==12)
{
$juntis.=$test."-";
}
else if($x==16)
{
$juntis.=$test."-";
}else if($x==20)
{
$juntis.=$test."-";
}
else{
$juntis.=$test;
}
}
$n++;
echo $juntis;
obrigada pela ajuda desculpe pois sou muito leiga em phpSe entendi corretamente seria isso:
$hash = '4dff4ea340f0a823f15d3f4f01ab62eae05da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a';
//^ Indica o inicio do texto
//(.{n}) Captura os próximos n caracteres.
//(.+)$ Captura os caracteres restantes até o final do texto.
$pattern = '/^(.{8})(.{4})(.{4})(.{4})(.+)$/';
// $n.. representa cada um dos grupos entre parenteses, onde n indica a posição do grupo no $pattern.
$replacement = '$1-$2-$3-$4-$5';
$masked = preg_replace($pattern, $replacement, $hash);
echo $masked;
Você pode testar em [https://3v4l.org/6bJSU](https://3v4l.org/6bJSU).Ótimo e isso mesmo obrigada pela ajuda bom final de semana
O que determina a inserção dos traços?