Ankündigung

Einklappen
Keine Ankündigung bisher.

AES Verschlüsselung Java > PHP

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • AES Verschlüsselung Java > PHP

    Hallo,
    hat jemand Erfahrung mit AES Verschlüsselung?
    Ich muss eine Java AES-Verschlüsselungsfunktion auf PHP portieren.
    ganz Unten der Ansatz, komme aber leider nicht weiter.



    Java Code
    ==========
    (Werte wurden geändert)

    Code:
    // private key
    private final static String KEY = "bfjrntmgkh34n576jdz67mfu";
    // init vector
    private final static String IV = "fngjtme45igklumh67m";
    // date format
    private final static String DATE_FORMAT = "yyyyMMdd";
    
    // name of algorithm
    private final static String ALGORITHM = "AES";
    
    // specification of encryption
    private final static String ENCRYPTION = ALGORITHM + "/CBC/ISO10126PADDING";
    
    
    public String encrypt(String inputString) throws Exception {
    
    Calendar calendar = Calendar.getInstance();
    TimeZone utcTimeZone = TimeZone.getTimeZone("UTC");
    DateFormat formatObj = new SimpleDateFormat(DATE_FORMAT);
    formatObj.setTimeZone(utcTimeZone);
    String utcStr = formatObj.format(calendar.getTime());
    
    String initVectorStr = MessageFormat.format(IV, utcStr);
    
    byte [] key = CustomBase64.decode(KEY);
    byte [] iv = CustomBase64.decode(initVectorStr);
    
    SecretKeySpec keySpec = new SecretKeySpec(key, ALGORITHM);
    IvParameterSpec ivSpec = new IvParameterSpec(iv);
    Cipher cipher = Cipher.getInstance(ENCRYPTION);
    cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec);
    
    byte [] input= inputString.getBytes();
    byte [] output = new byte[cipher.getOutputSize(input.length)];
    int ptLength = cipher.update(input, 0, input.length, output, 0);
    ptLength += cipher.doFinal(output, ptLength);
    
    String result = CustomBase64.encode(output);
    result = result.replaceAll("\r", "").replaceAll("\n", "").replaceAll("\t", "");
    
    return result;
    }


    PHP Code
    ==========

    erster Ansatz ?
    wie muss ich diese SecretKeySpec und Date Funktionen anwenden ??
    und was hat es mit dem ISO10126PADDING auf sich ?
    hat da jemand Erfahrung ?

    PHP-Code:
    function encryptAES($data,$key,$iv) {

    // Setzt den Verschlüsselungsalgorithmus
    $cp mcrypt_module_open('rijndael-128''''cbc''');


    // Ermittelt die Anzahl der Bits, welche die Schlüssellänge
    // des Keys festlegen
    $ks mcrypt_enc_get_key_size($cp);

    // Erstellt den Schlüssel, der für die Verschlüsselung genutzt wird
    $key substr(md5($key), 0$ks);

    // Initialisiert die Verschlüsselung
    mcrypt_generic_init($cp$key$iv);

    // Verschlüsselt die Daten
    $encrypted mcrypt_generic($cp$data);

    // Deinitialisiert die Verschlüsselung
    mcrypt_generic_deinit($cp);

    // Schließt das Modul
    mcrypt_module_close($cp);

    return 
    $encrypted;



  • #2
    hilft dir vielleicht weiter:

    Fun Things in Life � Blog Archive � AES Interop Between PHP and Java (Part 1)
    Fun Things in Life � Blog Archive � AES Interop Between PHP and Java (Part 2)
    Fun Things in Life � Blog Archive � AES Interop Between PHP and Java (Part 3)
    Fun Things in Life � Blog Archive � AES Interop Between PHP and Java (Part 4)
    [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
    | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

    Kommentar


    • #3
      Vielen Dank robo47 !! ich glaube damit kann ich mein Problem lösen : )

      Kommentar

      Lädt...
      X