PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   AES Verschlüsselung: php <=> javascript (https://www.php-resource.de/forum/php-developer-forum/104733-aes-verschluesselung-php-javascript.html)

mr_apollon 07-08-2014 18:21

AES Verschlüsselung: php <=> javascript
 
Hallo Leute,

ich probiere und suche schon den ganzen tag, komme aber überhaupt nicht weiter. ich rufe mit ajax verschlüsselte daten von einem webserver ab. diese muss ich entschlüsseln um sie weiterverwenden zu können. an dem php-script der die daten liefert können keine veränderungen vorgenommen werden. ich brauche also in js eine harmonierende de- und encrypt-Funktion.

hier der php-code

Code:

class MCrypt
{
    private $iv = 'fedcba9876543210';
    private $key = '0123456789abcdef';


    function __construct()
    {
    }

    /**
    * @param string $str
    * @param bool $isBinary whether to encrypt as binary or not. Default is: false
    * @return string Encrypted data
    */
    function encrypt($str, $isBinary = false)
    {
        $iv = $this->iv;
        $str = $isBinary ? $str : utf8_decode($str);

        $td = mcrypt_module_open('rijndael-128', ' ', 'cbc', $iv);

        mcrypt_generic_init($td, $this->key, $iv);
        $encrypted = mcrypt_generic($td, $str);

        mcrypt_generic_deinit($td);
        mcrypt_module_close($td);

        return $isBinary ? $encrypted : bin2hex($encrypted);
    }

    /**
    * @param string $code
    * @param bool $isBinary whether to decrypt as binary or not. Default is: false
    * @return string Decrypted data
    */
    function decrypt($code, $isBinary = false)
    {
        $code = $isBinary ? $code : $this->hex2bin($code);
        $iv = $this->iv;

        $td = mcrypt_module_open('rijndael-128', ' ', 'cbc', $iv);

        mcrypt_generic_init($td, $this->key, $iv);
        $decrypted = mdecrypt_generic($td, $code);

        mcrypt_generic_deinit($td);
        mcrypt_module_close($td);

        return $isBinary ? trim($decrypted) : utf8_encode(trim($decrypted));
    }

    protected function hex2bin($hexdata)
    {
        $bindata = '';

        for ($i = 0; $i < strlen($hexdata); $i += 2) {
            $bindata .= chr(hexdec(substr($hexdata, $i, 2)));
        }

        return $bindata;
    }

}

Code:

$mcrypt = new MCrypt();
$encrypted =  $mcrypt->encrypt("test");
//result: 9d4f494195e6a16b25546c852450f809

weder mit cryptojs noch mit jsmcrypt habe ich es in js hinbekommen die daten wieder zu entschlüsseln.

ich hoffe das jemand von euch auf dem gebiet richtig fit ist und mir unter die arme greifen kann.

Danke, Danke und nochmal Danke ;)

Kropff 07-08-2014 20:08

Warum rufst du per Ajax nicht ein PHP-Script auf, dass die verschlüsselten Daten abholt und dekodiert? Mit JavaScript wirst du keinen Zugriff auf das mcrypt-Modul haben.

Peter


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:50 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG