Prüfung eines Selfmade-Verschlüsselungsverfahrens

#0
02.12.2005, 00:27
...neu hier

Beiträge: 4
#1 Sehr geehrte Forumteilnehmer,

ich habe vor einiger Zeit mal ein Verschlüsselungsverfahren entwickelt, um Daten in meinen PHP-Systemen schnell sicher zu speichern. Nach einigen Recherchen bin ich nun an einen Punkt gekommen, die Sicherheit meines Verfahrens in Frage zu stellen. Deshalb würde ich auch bitten zu versuchen, folgenden kurzen String zu entschlüssen. Und da Security through obscurity ja nicht wirklich Sicherheit darstellt, gebe ich hier auch denn Quellcode zum Ent- und Verschlüsseln bekannt. Es würde mich sehr freuen, wenn sich einige von euch daran beteiligen würden.

Freundliche Grüße,
Ben

Quellcode:

Code

<?php
class prid_crypting {
  function charnum ($int) {
    $return = substr(bcsqrt(2, $int+1), -1, 1);
    if ($return == "0") {
      return "1";
    } else {
      return $return;
    }
  }
  
  function genKey ($key) {
    if (strlen($key) == 0) $key = 'nopass';
    
    $ki = 0;
    for ($i=0; $i<strlen($key); $i++) $ki += ord(substr($key, $i, 1));
    $ki = str_replace(".", "", $ki / (((strlen($key) + 500) * strlen($key)) * pi()));
    $ki *= hexdec(md5($key));
    $ki = str_replace(" ", "0", trim(str_replace("0", " ", $ki)));
    
    return $ki;
  }
  
  function decode ($string, $key) {
    $encstring = substr($string, 0, -32);
    $checksum = substr($string, -32);
    $encchars = explode(":", chunk_split($encstring, 3, ":"));
  
    $ki = $this->genKey($key);
    
    $kio = 0;  
    for($i=0; $i<count($encchars); $i++) {
      if ($kio == strlen($ki)) $kio = 0;
      
      $chardec = $encchars[$i];
      $crke = substr($ki, $kio, 1);
      
      $chardec = hexdec($chardec);
      $chardec = $chardec / $this->charnum($crke);
      $chardec = chr($chardec);
          
      $return .= $chardec;
      $kio++;
    }
    
    if ($checksum == md5(trim($return))) {
      return $return;
    } else {
      return false;
    }
  }
  
  function encode ($string, $key) {
    $checksum = md5($string);
  
    $ki = $this->genKey($key);
    
    $kio = 0;
    for($i=0; $i<strlen($string); $i++) {
      if ($kio == strlen($ki)) $kio = 0;
      
      $char = substr($string, $i, 1);
      $crke = substr($ki, $kio, 1);
      
      $charenc = ord($char) * $this->charnum($crke);
      
      $charenc = dechex($charenc);
      $charenc = str_repeat("0", 3-strlen($charenc)).$charenc;
      
      $return .= $charenc;
      $kio++;
    }
        
    return $return.md5(trim($string));
  }
}
?>
Verschlüsselter String:

Zitat

1881c019812f0d80200e620d06e2580801c807506e12c0b008010812306e0dc1841b812f0dc0200e620d06e2580801b006106e1350b83a813e18914ba4a9722ea305d3835bc8
Seitenanfang Seitenende
20.12.2005, 08:01
...neu hier

Themenstarter

Beiträge: 4
#2 *schieb*

Keine Antwort?
Seitenanfang Seitenende
20.12.2005, 11:50
Member
Avatar Xeper

Beiträge: 5291
#3 Wie wärs wenn du schreibst wie es funktioniert, was für variablen die function encode() erwartet - wie soll ich das aufrufen mit:

Code

$crypto=new prid_crypting;
$crypto->encode("foo", "bar");
bekomm ich leider nichts und ich hab keine Zeit jetz den code aufzuschlüsseln und mir darüber gedanken zu machen wie er funktioniert.
__________
E-Mail: therion at ninth-art dot de
IRC: megatherion @ Freenode
Seitenanfang Seitenende
21.12.2005, 15:02
Member

Beiträge: 38
#4 Hi

Ein sinvoller Code-Kommentar, sowie eine kurze Funktionserklärung wäre äusserst sinvoll.

MfG Joe
__________
www.joebox.org
Joebox a secure Sandbox Application for Windows Vista to analyse the Behaviour of Malware
Seitenanfang Seitenende
Um auf dieses Thema zu ANTWORTEN
bitte erst » hier kostenlos registrieren!!

Folgende Themen könnten Dich auch interessieren:
  • »
  • »
  • »
  • »
  • »