javascript - 加密 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.
有什么建议或其他加密类型吗?
解决方案
推荐阅读
- excel - 从 Excel 创建 Outlook 应用程序会生成类型不匹配错误
- git - 如何在冲突中将文件拆分为我们的文件和他们的文件
- java - 更衣室问题推广到 n 个人 - 重复错误
- javascript - 如何测试 JavaScript 对象是否只有特定的字段/属性
- java - 如何在android上从latlan获取地址
- javascript - 没有从反应js中的事件调用函数
- codeigniter-3 - CodeIgniter form_radio 总是保存第一个元素
- python - 为什么我将四个字节转换为二进制只有 30 个二进制数字?
- sequence - Hazelcast getAtomicLong 是否总是产生独特的价值?
- android - 创建曲线布局以使用底部工作表 android