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)
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 ?
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;
}
Kommentar