Hallo PHPhulpjes,

Om gelijk maar met de deur in huis te vallen: Ik liep al tijden rond met het idee om een hash te maken. Ik ben vandaag toch maar eens aan de slag gegaan, maar het is nog moeilijker dan ik dacht, om een goede, sterke hash te maken.

Wat ik heb gemaakt heet volgens mij niet eens een Hash, maar de-/encryptie.
Mijn vraag is nu, is het handig om voor je website beveiliging een eigen HASH of iets dergelijks te schrijven?

Ik neem aan van niet, maar toch lijkt het me leuk om een MOEILIJKE te maken :P.

Dit heb ik tot nu toe:

<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);

$s_Input = 'Lapidi'; #! Alleen letters & cijfers
$i_Hash = NULL;
$i_HashCode = NULL;
$i = 0;
$a_DigitsNew = NULL;
$a_Digits = array(); 
$i_bCounter = 0;
$s_Hash = NULL;

# Maak een array met alle verschillende tekens, A-Z, a-z en 1-9
$a_Digits = array_merge(range("a","z"),range("A","Z"),range(1,9));

# Draai de array van $a_Digits om, zodat je voor elk teken een nummer hebt.
$a_DigitsReverse = array_flip($a_Digits);

#@ Versleutelen:

for($i=0;!empty($s_Input{$i});$i++){
	# de hash zelf.
	$i_Hash .= $a_DigitsReverse[$s_Input{$i}];
	# de sleutel voor het ontsleutelen.
	$i_HashCode .= strlen($a_DigitsReverse[$s_Input{$i}]);
}
#@ Zet Sleutel + Hash bij elkaar in 1 variabele
$i_HashNew = $i_HashCode . '-' . $i_Hash;

echo $i_HashNew;
#$ Lapidi geeft output: 212111-37015838

# Gebruik de zojuist gegenereerde hash om te testen.
$i_Input = $i_HashNew;

# splits sleutel en hash.
$a_Input = explode('-',$i_Input);

#@ Ontsleutelen:
for($b=0;$b<(strlen($a_Input[0]));$b++){
	# Zoek het bijbehoordende teken met behulp van de sleutel.
	$s_Digit = $a_Digits[substr($a_Input[1],$i_bCounter,$a_Input[0]{$b})];
	
	# Doorloop de sleutel
	$i_bCounter += $a_Input[0]{$b};

	# Genereer de ontsleutelde waarde.
	$s_Hash .= $s_Digit; 
}

echo'<br/>' . $s_Hash;

#$ 212111-37015838 geeft output: Lapidi
?>

hey, ik heb zitten denken he.

je hebt berekening x op je invoer. voer je uit -> dan pak je berekening fx met huidige datum. hiermee ga je rommelen. alle klinkers worden een veelvoud van die datum ofzo

gooi je de boel nog een keer of wat door de trommel en de code tot je geheimtaal is dus je script + datum van schrijven.

Zo heb je altijd een variabele in je geheimtaal zitten EN moet je nog eens een sleutel hebben.

Het is een idee... kijk of je er wat aan hebt zou ik zeggen
Ik ben er mee bezig, het is alleen wat lastiger dan ik had gedacht, maar ik denk dat ik de sleutel tot succes bezit ;)

Dankje wel voor je hulp, zo meteen heb ik waarschijnlijk wel een voorbeeldje :)
Ben benieuwd
Bijna klaar met de datum-sleutel :P

Omzetten doet ie prima, maar terughalen nog niet echt. :P
Hij geeft in iedergeval al iets terug, wat overigens meer weg heeft van een Hash dan van de text die ik invoerde :p
[edit]
Probeer deze code maar eens te ontcijferen:



Datum: 12122007
Geheime Code: 34344229343442293434422934344229343442293434422934344229343442293434422934344229343442293434422934344229343442293434422934343229343442293434422934344229343442293434-277929327582907368906772839074647790756889687790716865907368906768907068716872766890667867689082846666688285787590787783667273696881672765811429473947398475797368821190336867647774839085787881907168839076686867687774687790646477906768896890667867680904364797267722714792990129036727767689038687168727668903378786782667164799012

Geheime Link

[/edit]

Het is me gelukt om de datum in te voegen.

Met dit script laat ik hem eerst versleutelen, en daarna weer terug, om te kijken of hij het twee kanten op doet. :)

Jammer dat de code 3x zo lang wordt als de oorspronkelijke text.

Met de volgende code:


<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
$start = microtime();

$s_Input = 'PHPHulp 4 Life!';
$i_Key = "12122007"; #! DE SLEUTEL tot ontcijfering: date("dmY")

$i_Hash = NULL;
$i_HashCode = NULL;
$a_DigitsNew = NULL;
$a_Digits = array(); 
$i_bCounter = 0;
$s_Hash = NULL;
$i_HashKey = NULL;
$i_HashKeyNew = NULL;

$c=0;
$i=0;
$b=0;
$d=0;
$e=0;
$f=0;
$g=0;

# Maak een array met alle verschillende tekens, A-Z, a-z en 1-9
$a_Digits = array_merge(range("!","z")," ");

# Draai de array van $a_Digits om, zodat je voor elk teken een nummer hebt.
$a_DigitsReverse = array_flip($a_Digits);

#@ Versleutelen:

for($i=0;$i<strlen($s_Input);$i++){

    $i_Hash .= $a_DigitsReverse[$s_Input{$i}];

    $i_HashCode .= strlen($a_DigitsReverse[$s_Input{$i}]);
}

for($c=0;$c<strlen($i_HashCode);$c++){
	 $i_HashKey .= bcadd($i_HashCode{$c},$i_Key{$d});
	 $d++;
	 if(strlen($i_Key) == $d){
		$d=0;
	 }
}

$i_HashNew = $i_HashKey . '-' . $i_Hash;

#@ Dit is de versleutelde versie
echo $i_HashNew; 

$i_Input = $i_HashNew;

# splits sleutel en hash.
$a_Input = explode('-',$i_Input);

for($b=0;$b<(strlen($a_Input[0]));$b++){
	$i_HashKeyNew .= bcsub($a_Input[0]{$b},$i_Key{$f});
	#Parse
	#echo "<br/><b>".$i_HashKeyNew."</b> = ".$a_Input[0]{$b} . " - " . $i_Key{$f};
	$f++;
	if(strlen($i_Key) == $f){
		$f=0;
	}
}

for($g=0;$g<strlen($i_HashKeyNew);$g++){
    $s_Digit = $a_Digits[substr($a_Input[1],$i_bCounter,$i_HashKeyNew{$g})];
    $i_bCounter = bcadd($i_bCounter,$i_HashKeyNew{$g});

    $s_Hash .= $s_Digit; 
}
#@ en hier zou s_Input uit moeten komen.
echo'<br/>' . $s_Hash;

$stop = microtime();

echo'<p>Deze calculatie duurde '.($stop-$start).' seconden';
#$ 343442293434421-47394739847579901990437269680 geeft output: "PHPhulp 4 Life!" ?> 


Mijn excuses voor het niet editen van vorige bericht :o

Maar das tog t beste
Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

Notice: Undefined offset: 1 in /data/members/paid/l/a/lapidi.nl/htdocs/www/ontcijfer.php on line 65

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Deze calculatie duurde 0 seconden


nog ff fixen hè ;-)
Heb je de datum wel goed in gevuld, zoals daar staat?

12122007 ipv 12-12-2007 ;)
Ik snap niet waarom mensen zo klagen over dat md5 en/of sha1 te bruteforcen is? Het staat in je database en als die goed beveildigd is kan daar toch niemand bij..
Het wachtwoord van je Database valt ook te bruteforcen ;)

Mij hoor je er niet overklagen. Het gaat er alleen om, dat wanneer die informatie in verkeerde handen zou vallen, ze er weinig mee kunnen, dan net als een cijferslot op je fiets alle mogenlijkheden te proberen.

Heeft iemand trouwens mijn code al ontcijferd?


Datum (Sleutel): 12122007
Geheime Code: 34344229343442293434422934344229343442293434422934344229343442293434422934344229343442293434422934344229343442293434422934343229343442293434422934344229343442293434-277929327582907368906772839074647790756889687790716865907368906768907068716872766890667867689082846666688285787590787783667273696881672765811429473947398475797368821190336867647774839085787881907168839076686867687774687790646477906768896890667867680904364797267722714792990129036727767689038687168727668903378786782667164799012

Geheime Link

Aangezien er stond: ddmmjj
dacht ik 221292
maar ik zal is proberen op jou manier
groeten :-)

Reageren