Java-Verschlüsselung und Javascript-Entschlüsselung [geschlossen]

Ich versuche, Daten in Java zu verschlüsseln und diese in Javascript zu entschlüsseln. Es gibt bereits eine ähnliche Frage in SO, aber sie funktioniert bei mir nicht.

Meine Frage ist - Der verschlüsselte Text von Java-Code wird von Javascript nicht entschlüsselt. Ich habe den verschlüsselten Text und den Schlüssel in meinem JS unten fest codiert.

P.S. Ich weiß, dass die Entschlüsselung auf der Benutzeroberfläche keinen Nutzen hat, da der Schlüssel sichtbar ist und jeder Benutzer den Code entschlüsseln kann. Dafür muss ich jedoch ein Penetrationstest-Tool umgehen. Also bitte, schlagen Sie vor, wie es gemacht werden kann

Java Code -

import java.security.Key;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;

public class Crypt {
    private static final String ALGO = "AES";
    private static final byte[] keyValue = 
    new byte[] { 'A', 'b', 'c', 'd', 'e', 'f', 'g',
    'h', 'i', 'j', 'k','l', 'm', 'n', 'o', 'p'};

public static String encrypt(String Data) throws Exception {
    Key key = generateKey();
    String keyForJS = Base64.encodeBase64String(keyValue);
    System.out.println("Key2 = " + keyForJS);
    Cipher c = Cipher.getInstance(ALGO);
    c.init(Cipher.ENCRYPT_MODE, key);
    byte[] encVal = c.doFinal(Data.getBytes());
    String encryptedValue = Base64.encodeBase64(encVal).toString();
    return encryptedValue;
}

private static Key generateKey() throws Exception {
    Key key = new SecretKeySpec(keyValue, ALGO);
    return key;
}

public static void main(String a[]) throws Exception
{
  System.out.println("Encryption = " + Crypt.encrypt("Test"));

}
}

Ausführung des obigen Codes in Eclipse erzeugt die folgende Ausgabe -

Key2 = [B @ 670b5064

Encryption = [B @ 3c8b22e5

Nun werde ich diese Daten für meinen JS-Code verwenden

<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/components/mode-ecb-min.js"></script>

var base64Key = "[B@670b5064"; // This is the output key from Java
var key = CryptoJS.enc.Base64.parse(base64Key);


var decryptedData = CryptoJS.AES.decrypt( "[B@3c8b22e5", key, { // This is the Output text from Java
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7
} );
var decryptedText = decryptedData.toString( CryptoJS.enc.Utf8 );
console.log( "decryptedText = " + decryptedText );

Ausgabe von JS-Code -

decryptedText - (Es ist leer, nichts wird angezeigt). Finden Sie bitte JS Geige -http: //jsfiddle.net/achyut/pKNzV/11

Antworten auf die Frage(1)

Ihre Antwort auf die Frage