Avatar billede bumle90 Nybegynder
14. juli 2004 - 16:41 Der er 5 kommentarer og
1 løsning

konvertering fra hex til binær

Jeg har en krypteret hex værdi hentet ud fra en varchar i databasen. Denne vil jeg gerne konvertere til en binær streng så jeg kan dekryptere denne igen. Hvordan laver jeg den om?
Der findes en bin2hex() Hvorfor findes der ikke en den anden vej?
Avatar billede jpvj Nybegynder
14. juli 2004 - 16:43 #1
Avatar billede bumle90 Nybegynder
14. juli 2004 - 16:46 #2
Den side har jeg været inde på...Men man skal være et member for at hente filen ned....Deter jeg ikke
Avatar billede Slettet bruger
14. juli 2004 - 19:40 #3
Her er en funktion, jeg lige skruede sammen. Den er ikke afprøvet, men burde virke. Og det kunne nok gøres smartere.

function hex2bin($hexstreng){
  if(preg_match("/[^0-9A-F]/i",$hexstreng){
    return false;
  } else {
    $trans=array(
      '0' => '0000',
      '1' => '0001',
      '2' => '0010',
      '3' => '0011',
      '4' => '0100',
      '5' => '0101',
      '6' => '0110',
      '7' => '0111',
      '8' => '1000',
      '9' => '1001',
      'A' => '1010',
      'B' => '1011',
      'C' => '1100',
      'D' => '1101',
      'E' => '1110',
      'F' => '1111'
    );
    $hexstreng=strtoupper($hexstreng);
    $binstreng=strtr($hexstreng,$trans);
    return $binstreng;
  }
}
Avatar billede sostack Nybegynder
15. juli 2004 - 07:33 #4
sandbox-> du mangler lige en enkelt parentes efter din preg_match, ellers virker den perfekt ;-)

//sostack
Avatar billede sostack Nybegynder
15. juli 2004 - 07:44 #5
Her er en anden måde:
<?php
function hexbin($hex) {
  $bin = decbin(hexdec($hex));
  return $bin;
}

function binhex($bin) {
  $hex = dechex(bindec($bin));
  return $hex;
}
?>

//sostack
Avatar billede Slettet bruger
15. juli 2004 - 13:51 #6
sostack: Ja, sørme. Det var ikke sket, hvis jeg havde brugt min normale editor istedet for tekstfeltet her på siden. Min editor laver automatisk slut-tegnet, når jeg starter en ({ eller [.

Og din var jo noget smartere en min, så der havde jeg også ret ;-)

Her er et bud mere - og uden krumspring denne gang.

$bin = base_convert($hex, 16, 2);

Og nogle af de andre konverteringer:

$hex = base_convert($bin, 2, 16);
$oct = base_convert($hex, 16, 8);
$hex = base_convert($oct, 8, 16);

De to base-værdier kan være op til 36, hvor 10-35 så repræsenteres af bogstaverne a-z.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester