php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 08.04.2005, 11:44  
Gast
 
Beiträge: n/a
Standard Entschlüsselung mit mcrypt

Hallo,
Da ich mit der suche und bei Google nichts gefunden habe, das mir weiterhelfen konnte,
wende ich mich direkt an Euch.
Ich habe ein kleines Problem mit mcrypt()...
Ich habe mir eine Verschlüsselungsklasse geschrieben, die sieht so aus:

PHP-Code:
<?php
class CVerschluesselung
{
private 
$schluessel;
private 
$td;    
private 
$iv;            // Initialisierungsvektor, wird in Sitzung gespeichert 
                        // -> kein Sicherheitsrisiko laut [url]http://de.php.net/manual/en/function.mcrypt-create-iv.php[/url] 
    
//! Konstruktor der Verschlüsselungsklasse, lädt mcrypt-Modul
//! Param:    keine
//! Rück:    keine
    
public function __construct($initVektor 0)
    {
        if(
extension_loaded('mcrypt') === FALSE)
        {
          
$prefix = (PHP_SHLIB_SUFFIX == 'dll') ? 'php_' '';
          
dl($prefix 'mcrypt.' PHP_SHLIB_SUFFIX) or die('Das MCrypt Modul konnte nicht geladen werden.');
        } 
        
$this->schluessel 'das ist der schluessel!';
        
        
// MCrypt Modus und Algorithmus setzen
        
$this->td mcrypt_module_open('tripledes''''ecb''');
        
        if(!empty(
$initVektor))                // Initialisierungsvektor setzen
        
{
            
$this->iv $initVektor;
        }else                                
// neuen Initialisierungsvektor erzeugen
        
{
            
srand();                        // Saat erzeugen für MCRYPT_RAND:
            
$this->iv mcrypt_create_iv (mcrypt_enc_get_iv_size($this->td), MCRYPT_RAND);
        }
        
        
// initialisieren Bibliothek 
        
mcrypt_generic_init($this->td$this->schluessel$this->iv);
    }    

    

//! Verschlüsselt die angegebene Zeichenkette 
//! Param:     $zeichenkette    - Zeichenkette im Klartext
//! Rück:    $ergebnis        - verschlüsselte Zeichenkette
    
public function verschluessleWort($zeichenkette)
    {
        
$ergebnis base64_encode(mcrypt_generic($this->td$zeichenkette));    
        return 
$ergebnis;
    }
    
//! Entschlüsselt die angegene Zeichenkette
//! Param:    $zeichenkette    - verschlüsselte Zeichenkette
//! Rück:    $ergebnis        - Zeichenkette im Klartext
    
public function entschluessleWort($zeichenkette)
    {
        
$ergebnis trim(mdecrypt_generic($this->tdbase64_decode($zeichenkette)));
        return 
$ergebnis;
    }


//! Gibt den Initialisierungsvektor zurück, um ihn in der Sitzungsvariable speichern zu lassen
//!    Param:    keine
//!    Rück:    $iv            - Initialisierungsvektor
    
public function gibInitVektor()
    {
        return 
$this->iv;
    }
    
//! Destruktor der Verschlüsselungsklasse, schließt die Verbindung zum MCrypt Modul
//!    Param:    keine
//!    Rück:    keine
    
public function __destructor()
    {
      
mcrypt_generic_deinit($this->td);
      
mcrypt_module_close($this->td);
        
    }    
}
?>
Den Initialisierungsvektor speichere ich in den Sitzung, da ich gelesen
habe, ich bräuchte den gleichen wieder zum entschlüsseln.. stimmt das?

Das mit dem base64 habe ich eingefügt nachdem ich das hier gesehen habe -> http://www.phpfreaks.com/tutorials/128/1.php

Mein Problem ist nun, dass ich ein Wort zwar verschlüsseln kann (das Ergebnis kommt auch in die Sitzung),
aber nicht wieder entschlüsseln. Es kommt zwar etwas anderes dabei heraus als das Verschlüsselte, aber leider nicht das Ausgangswort im Klartext.

Kann mir jemand sagen, was ich falsch mache?

Viele Grüße,
Aari
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 08.04.2005, 13:48  
Erfahrener Benutzer
 
Registriert seit: 19.06.2004
Beiträge: 665
konsti
Standard

guckst du mal da da steht was von mcrypt_generic_init() vielleicht musst du das erst machen...
http://de3.php.net/manual/en/functio...pt-generic.php
__________________
http://www.silvercoding.de
------------
ElePHPant Edit
konsti ist offline  
Alt 08.04.2005, 13:55  
Gast
 
Beiträge: n/a
Standard

hm ja muss ich, mach ich auch :
Die Klasse wird auf der einen Seite instanziiert, das Wort wird verschlüsselt.
Dann wird die Klasse auf der nächsten Seite wieder instanziiert, das Wort wird entschlüsselt.
Da bei jeder neuen Instanz der Konstruktor aufgerufen wird, sollte auch das
mcrypt_generic_init() vor dem Entschlüsseln neu aufgerufen werden und zwar mit dem gespeicherten Initialisierungsvektor, oder?

Ich versuch mal das mcrypt_generic_init() in die Entschlüsselungsfunktion zu packen, vielleicht geht das dann

Vielen Dank in jedem Fall für den Hinweis, konsti

Viele Grüße,
Aari
 
Alt 08.04.2005, 15:22  
Erfahrener Benutzer
 
Registriert seit: 19.06.2004
Beiträge: 665
konsti
Standard

ja aber im grude hast du recht,
den konstruktor hab ich ganz übersehen..
__________________
http://www.silvercoding.de
------------
ElePHPant Edit
konsti ist offline  
Alt 08.04.2005, 15:52  
Gast
 
Beiträge: n/a
Standard

Heureka, ich hab's

Der Fehler lag, wie üblich an ganz anderer Stelle.. :blush:
Das ist das Schöne an Anfängerfragen, sie klären sich meist von ganz allein..

Ein bissle peinlich ist es mir schon, dass ich hier immer poste und dann den
Fehler doch selbst finde. Allerdings geht dem Post meist eine lange verzweifelte Suche voran, also denkt bitte nicht, ich poste hier, bevor ich mir Gedanken mache

Viele Grüße und vielen Dank nochmal,
Aari
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Sicheres verschlüsseln mit mcrypt? t.animal PHP-Fortgeschrittene 23 05.05.2008 20:23
Rijndael ohne mcrypt Jacks Rache PHP-Fortgeschrittene 13 28.04.2008 18:20
mcrypt Probleme auf Produktionsserver IkeaBoy PHP-Fortgeschrittene 6 19.11.2007 19:17
[solved] mcrypt frage DonTermi PHP Tipps 2007 19 12.09.2007 19:54
mcrypt notyyy PHP Tipps 2006 1 12.11.2006 22:23
MCRYPT Problem solitaer PHP-Fortgeschrittene 2 17.01.2006 10:58
publickey und secretkey mit mcrypt bitte um hilfe PHP Tipps 2005 0 17.01.2005 13:18
mcrypt win32 PHP Tipps 2004-2 0 30.12.2004 14:07
Mcryp Bibliothek lädt nicht PHP Tipps 2004-2 8 05.12.2004 20:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
solitaire entschlüsseln, solitaire entschlüsseln online, solitaire online entschlüsseln, solitaire entschlüsselung, mcrypt entschlüsseln, solitaire code entschlÜsseln, solitär entschlüsseln, entschlüsseln mit solitaire, http://www.php.de/php-tipps-2005/20888-entschluesselung-mit-mcrypt.html, solitaire verschlüsselung online, solitär entschlüsselung, mcrypt online, online entschlüsselung, verschlüsselung solitaire online, solitär online entschlüsseln, solitär verschlüsselung, wort entschlüsseln, entschlüsseln solitaire, mcrypt, mcrypt initialisierungsvektor

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:41 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.