我需要使用以下命令在JAVA中解密在UNIX中加密的文件:
openssl aes-256-cbc -a -salt -in password.txt -out password.txt.enc
mypass
mypass
Run Code Online (Sandbox Code Playgroud)
我必须在java中解密,就像我在UNIX中所做的那样
openssl aes-256-cbc -d -a -in password.txt.enc -out password.txt.new
mypass
Run Code Online (Sandbox Code Playgroud)
有人可以给我一个java代码来做这个吗?
我对 AES 加密和解密非常陌生。在我的应用程序中,我必须解密从服务器获得的数据。我收到的数据是使用 CryptoJS 库加密的。解密工作得很好。但是在将数据发布到服务器时,我必须再次加密数据并将其发送到服务器,这没有提供适当的加密。我已按照此堆栈溢出答案进行解密,该答案工作正常。我将在下面发布我的解密代码。请帮忙。
对于解密:
public static String Decrypt(String Encrpyt , String Key ) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidAlgorithmParameterException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException {
byte[] cipherData = Base64.decode(Encrpyt, Base64.DEFAULT);
byte[] saltData = Arrays.copyOfRange(cipherData, 8, 16);
MessageDigest md5 = null;
try {
md5 = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
final byte[][] keyAndIV = GenerateKeyAndIV(32, 16, 1, saltData, Key.getBytes(StandardCharsets.UTF_8), md5);
SecretKeySpec key = new SecretKeySpec(keyAndIV[0], "AES");
IvParameterSpec iv = new IvParameterSpec(keyAndIV[1]);
byte[] encrypted = Arrays.copyOfRange(cipherData, 16, …Run Code Online (Sandbox Code Playgroud) 使用以下命令对文件进行加密:
openssl enc -aes-256-cbc -in file.txt -out file_enc.txt -k 1234567812345678
Run Code Online (Sandbox Code Playgroud)
使用以下命令解密该文件:
openssl enc -d -aes-256-cbc -in file_enc.txt -out file.txt -k 1234567812345678
Run Code Online (Sandbox Code Playgroud)
在java中打印盐和密钥后我得到:
密钥=b796fbb416732ce13d39dbb60c0fb234a8f6d70e49df1c7e62e55e81d33a6bff774254ac99268856bf3afe0b95defdad
在 cmd 中我得到:
盐=2D7C7E1C84BD6693密钥=B796FBB416732CE13D39DBB60C0FB234A8F6D70E49DF1C7E62E55E81D33A6BFF
=774254AC99268856BF3AFE0B95DEFDAD
运行后:
openssl enc -aes-256-cbc -in file.txt -out file_enc.txt -pbkdf2 -k 1234567812345678 -p
我正在使用以下代码,但正在打印加密文件:
public static void main(String args[]) throws InvalidKeySpecException,
NoSuchAlgorithmException,
IllegalBlockSizeException,
InvalidKeyException,
BadPaddingException,
InvalidAlgorithmParameterException,
NoSuchPaddingException,
IOException {
String password = "1234567812345678";
String algorithm = "AES/CBC/PKCS5Padding";
IvParameterSpec ivParameterSpec = AESUtil.generateIv();
Resource resource = new ClassPathResource("file_enc.txt");
File inputFile = resource.getFile();
byte[] salt = …Run Code Online (Sandbox Code Playgroud)