Hallo alle zusammen.
Ich habe dieses Thema schon Verschlüssel Funktion - Forum: phpforum.de hier angesprochen, leider keine für mich nützlichen Antworten bekommen. Nur, damit ich mich nicht eines Crosspostings schuldig mache
Ich habe mich mal an einer Verschlüsselungsfunktion probiert. Diese basiert auf folgenden Prinzip: Der Text wird mit einen Schlüssel (unterschiedlich zwischen 1000-2500 Zeichen groß) verschlüsselt. Dazu wird der ASCII Code des Textes mit dem ASCII Code des Schlüssels addiert. Hat der Schlüssel sein Ende erreicht, wird er durch eine Anzahl, die durch den ANCII Code eines bestimmten Stringbuchstabens, neu zusammengewürfelt, indem der Hash im Prinzip Letzter_Buchstabe.Erster_Buchstabe._Vorletzter_Buc hstabe.Zweiter_Buchstabe usw. neu zusammengesetzt wird.
Nun habe ich dazu zwei Fragen:
1. Ist das sicher? (Ich hab da ziemlich starke Bedenken)
2. Aus irgendeinen Grund wird der String bei Verschlüsselung und anschließender Entschlüsselung ab einen bestimmten Buchstabe (meistens ein ".", "ö" oder "ß") bei bestimmtes Schlüssel falsch decoded und es entsteht ein Buchstaben Wirr-Warr. Ich habe leider noch nicht rausbekommen warum das so ist bzw. was für ein Muster der Schlüssel dabei hat.
PS: Ignoriert bitte die Parameter $wrap und $return_number, die hab ich nur zum Test mal eingefügt... einfach als nicht gesetzt betrachten.
Ich habe dieses Thema schon Verschlüssel Funktion - Forum: phpforum.de hier angesprochen, leider keine für mich nützlichen Antworten bekommen. Nur, damit ich mich nicht eines Crosspostings schuldig mache
Ich habe mich mal an einer Verschlüsselungsfunktion probiert. Diese basiert auf folgenden Prinzip: Der Text wird mit einen Schlüssel (unterschiedlich zwischen 1000-2500 Zeichen groß) verschlüsselt. Dazu wird der ASCII Code des Textes mit dem ASCII Code des Schlüssels addiert. Hat der Schlüssel sein Ende erreicht, wird er durch eine Anzahl, die durch den ANCII Code eines bestimmten Stringbuchstabens, neu zusammengewürfelt, indem der Hash im Prinzip Letzter_Buchstabe.Erster_Buchstabe._Vorletzter_Buc hstabe.Zweiter_Buchstabe usw. neu zusammengesetzt wird.
Nun habe ich dazu zwei Fragen:
1. Ist das sicher? (Ich hab da ziemlich starke Bedenken)
2. Aus irgendeinen Grund wird der String bei Verschlüsselung und anschließender Entschlüsselung ab einen bestimmten Buchstabe (meistens ein ".", "ö" oder "ß") bei bestimmtes Schlüssel falsch decoded und es entsteht ein Buchstaben Wirr-Warr. Ich habe leider noch nicht rausbekommen warum das so ist bzw. was für ein Muster der Schlüssel dabei hat.
PHP-Code:
private function string_hash($text, $wrap="", $return_number=FALSE, $mode){
$encoded="";
if (empty($this->key)) return FALSE;
$key=$this->key;
$n=0;
for ($i=0; $i<strlen($text); $i++){
$key_ascii=ord(substr($key, $n, 1));
if (!is_numeric($key_ascii) || $key_ascii===0){
$n=0;
$max=strlen($key)/2;
for ($i2=1; $i2<=ord(substr($key, $i%55+substr($key, ($i%111), 1), 1))+($i%33); $i2++){
$new_key=$key;
for ($i3=0; $i3<$max; $i3++){
$new_key.=substr($key, $i3, 1).substr($key, -$i3, 1);
}
$key=$new_key;
}
continue;
}
if ($mode=="decode"){
$new_ascii=ord(substr($text, $i, 1))-$key_ascii;
if ($new_ascii<=0){$new_ascii+=256;}
}else{
$new_ascii=ord(substr($text, $i, 1))+$key_ascii;
if ($new_ascii>256){$new_ascii%=256;}
}
if ($return_number==FALSE)
$encoded.=chr($new_ascii).$wrap;
else
$encoded.=$new_ascii.$wrap;
$n++;
}
return $encoded;
}
Kommentar