gpt4 book ai didi

java - 解密在android中由openssl加密的文件

转载 作者:行者123 更新时间:2023-11-30 02:54:42 24 4
gpt4 key购买 nike

我在解密通过 openssl 命令行加密的文本文件时遇到问题:

Key Geanaration:
# openssl enc -aes-256-cbc -k secret -P -md sha1
salt=770AB8C12EF73A4E
key=7EF9E708C05E1767C433E097A66A84AC1971E124E42BDB9D4F0967FF77642AA4
iv =EFFA2B9E2990BC6641E1E5D859D3CF37

File Encryption:
# openssl enc -aes-256-cbc -K 7EF9E708C05E1767C433E097A66A84AC1971E124E42BDB9D4F0967FF77642AA4 -iv EFFA2B9E2990BC6641E1E5D859D3CF37 -in text.txt -out text22.enc

但是我有一个密码,我不能用它来解密:

public void decryptAES() throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IOException{
FileInputStream fis = new FileInputStream(Environment.getExternalStorageDirectory()+"/encrypted.txt");

FileOutputStream fos = new FileOutputStream(Environment.getExternalStorageDirectory()+"/decrypted.txt");
SecretKeySpec sks = new SecretKeySpec("your_key".getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES/CBC");
cipher.init(Cipher.DECRYPT_MODE, sks);
CipherInputStream cis = new CipherInputStream(fis, cipher);
int b;
byte[] d = new byte[8];
while((b = cis.read(d)) != -1) {
fos.write(d, 0, b);
}
fos.flush();
fos.close();
cis.close();
}

最佳答案

您忘记实现 IV 功能,因此您的前 16 个字节会有所不同。您确实需要为 AES 等对称加密使用相同的 key ,并且您应该指定填充模式,例如“AES/CBC/PKCS5Padding”

关于java - 解密在android中由openssl加密的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23488278/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com