首页 > 解决方案 > 加密 Javascript - 解密 Java

问题描述

我想在提交之前加密密码。

应用程序.js

function encryptPass() {
    var encrypted = CryptoJS.AES.encrypt("Test", "1234").toString();
    $("#password").val(encrypted)
}  

提交后,工具调用方法:decrypt

通行证.java

public static String decrypt(String strToDecrypt) {
    def result

    try {
        if (strToDecrypt) {
            Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5PADDING");
            cipher.init(Cipher.DECRYPT_MODE, obtenerSecretKey());

            result = new String(cipher.doFinal(Base64.decodeBase64(strToDecrypt)))
        }
    } catch (Exception e) {
        println e
        throw e;
    } finally {
        return result
    }
}

private static SecretKeySpec obtenerSecretKey () {
    MessageDigest sha = MessageDigest.getInstance("SHA-1");
    def semilla = "1234"

    def key = sha.digest(semilla.getBytes("UTF-8"));
    key = Arrays.copyOf(key, 16);

    return new SecretKeySpec(key, "AES");
}

我收到此错误:

javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.

有什么建议或其他加密类型吗?

标签: javascriptjava

解决方案


推荐阅读