Mit CryptoJS zu verschlüsseln, in Javascript und entschlüsseln in Java

Ich versuche zu verschlüsseln etwas in JavaScript mit dem google https://code.google.com/p/crypto-js/#AES genau so, wie es ist, wenn das Beispiel. Das problem ist, dass ich versuche, es zu entschlüsseln, die in Java das Ergebnis ist anders. Der einzige Unterschied, den ich sehen kann ist die Polsterung (CryptoJs verwendet Pkcs7-in der Erwägung, dass java verwendet Pkcs5) nach der Lektüre ein wenig, ich erkannte, dass Pkcs7-und Pkcs5 sind im Grunde die gleichen.

Hier ist ein Beispiel für den code, dass ich die Verschlüsselung in Javascript:

var crypto = require('./aes.js');
var login = 'ABCD';
var key = crypto.CryptoJS.enc.Hex.parse('0123456789012345');
var ive  = crypto.CryptoJS.enc.Hex.parse('0123456789012345');

var encrypted = crypto.CryptoJS.AES.encrypt(login, key, {iv: ive});
console.log('encrypted msg = ' + encrypted)

Dies ist der code, dass ich in Java um es zu entschlüsseln:

public String decrypt(byte[] cipherText) throws Exception {

    String psk = "0123456789012345";
    String iv = "0123456789012345";
    try {
        String encryptionKey = psk;
        final Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding", "SunJCE");
        final SecretKeySpec key = new SecretKeySpec(encryptionKey.getBytes(UTF8), "AES");
        cipher.init(Cipher.DECRYPT_MODE, key, new IvParameterSpec(iv.getBytes(UTF8)));
        return new String(cipher.doFinal(cipherText), UTF8);
    } catch (BadPaddingException | IllegalBlockSizeException | UnsupportedEncodingException | InvalidAlgorithmParameterException | InvalidKeyException | NoSuchAlgorithmException | NoSuchPaddingException | NoSuchProviderException ex) {
        LOG.log(Level.SEVERE, ex.getMessage(), ex);
        throw new Exception(ex.getMessage());
    }
}

Haben Sie eine Idee, warum es scheitert, dass schlecht? Wird es einen anderen Algorithmus oder muss ich nicht woanders?

InformationsquelleAutor mdagis | 2015-10-19
Schreibe einen Kommentar