Auto.js 使用 $crypto.digest 解密 Blowfish/ECB/PKCS5Padding 类型数据
使用 $crypto.digest 解密 Blowfish/ECB/PKCS5Padding 类型格式的数据,需要先进行以下步骤:
- 导入相关库
var SecretKeySpec = javax.crypto.spec.SecretKeySpec;
var Cipher = javax.crypto.Cipher;
var Base64 = java.util.Base64;
- 定义加密算法、密钥和密码
var algorithm = 'Blowfish';
var key = '1234567890123456';
var password = '123456';
- 将密钥转换为 SecretKeySpec 类型
var keySpec = new SecretKeySpec(key.getBytes('UTF-8'), algorithm);
- 初始化 Cipher
var cipher = Cipher.getInstance(algorithm + '/ECB/PKCS5Padding');
- 解密数据
var encryptedData = 'U2FsdGVkX19hC8Wfj2E+kJLQq5BqBk+2xK0r9l9K6r8=';
var encryptedBytes = Base64.getDecoder().decode(encryptedData);
cipher.init(Cipher.DECRYPT_MODE, keySpec);
var decryptedBytes = cipher.doFinal(encryptedBytes);
var decryptedData = new java.lang.String(decryptedBytes, 'UTF-8');
完整代码如下:
var SecretKeySpec = javax.crypto.spec.SecretKeySpec;
var Cipher = javax.crypto.Cipher;
var Base64 = java.util.Base64;
var algorithm = 'Blowfish';
var key = '1234567890123456';
var password = '123456';
var keySpec = new SecretKeySpec(key.getBytes('UTF-8'), algorithm);
var cipher = Cipher.getInstance(algorithm + '/ECB/PKCS5Padding');
var encryptedData = 'U2FsdGVkX19hC8Wfj2E+kJLQq5BqBk+2xK0r9l9K6r8=';
var encryptedBytes = Base64.getDecoder().decode(encryptedData);
cipher.init(Cipher.DECRYPT_MODE, keySpec);
var decryptedBytes = cipher.doFinal(encryptedBytes);
var decryptedData = new java.lang.String(decryptedBytes, 'UTF-8');
console.log(decryptedData);
原文地址: https://www.cveoy.top/t/topic/oAwn 著作权归作者所有。请勿转载和采集!