2017-01-31 4 views
1

In meiner Backend-Seite sie die verschlüsselte Nachricht mit AES-Algorithmus mit 16-Byte-Schlüssel mit diesem Stück Code erstellt habenAES Java-Verschlüsselung 16-Byte-Schlüssel Entschlüsselung mit Objective-C

Key: h7Ui63Mzqj61G87j

public static String encrypt(String data, byte[] secretKey) throws Exception { 
    Key key = generateKey(secretKey); 
    Cipher c = Cipher.getInstance(ALGORITHM); 
    c.init(Cipher.ENCRYPT_MODE, key); 
    byte[] encVal = c.doFinal(data.getBytes()); 
    String encryptedValue = new BASE64Encoder().encode(encVal); 
    if (logger.isDebugEnabled()) { 
     logger.debug(String.format("DataToEncrypt: %s, encryptedValue: %s", data, encryptedValue)); 
    } 
    return encryptedValue; 
} 

Aber ich kann nicht in der Lage, die Nachricht mit dem gleichen Schlüssel mit AES-Algorithmus zu entschlüsseln

Ich verwiesen viele Links und Blogs nichts half mir, Kann mir bitte helfen, dieses Problem zu lösen.

+0

Ihr Schlüssel ist 16 Zeichen lang. Wie konvertiert man es in 32 Bytes? – Codo

+0

Ok, jetzt haben wir 16 * Zeichen * vs 16 * Bytes *. Wie konvertiert man von Zeichen in Bytes? – Codo

+1

Und bitte zeigen Sie den Objective-C-Code, den Sie bisher haben. Und sagen Sie uns, was "ich kann nicht entschlüsseln Nachricht" bedeutet. Kompiliert es nicht? Stürzt es ab? Produziert es die falsche Ausgabe? Was ist die Eingabe, was ist die erwartete Ausgabe und was ist die effektive Ausgabe? – Codo

Antwort

1

Bitte beachten Sie dies untenstehenden Link,

https://github.com/callmewhy/why-encrypt

seine Hilfe voll Hoffnung.

+0

Ja danke, es funktioniert gut. – ASV

+0

Veröffentlichen Sie die relevanten Informationen für den Fall, dass die Verbindung jemals verrottet. – Jamal

+0

Der referenzierte Code verwendet den ECB-Modus. Verwenden Sie nicht den ECB-Modus, es ist nicht sicher, siehe [ECB-Modus] (https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Electronic_Codebook_.28ECB.29), scrollen Sie nach unten zum Penguin. Verwenden Sie stattdessen CBC-Modus mit einem zufälligen IV, nur die verschlüsselten Daten mit dem IV für die Verwendung in der Entschlüsselung, es muss nicht geheim sein. – zaph

Verwandte Themen