我使用OpenSSL命令在服务器中有一个加密文件:
openssl enc -aes-256-ecb -salt -in ori.pdf -out encrypted.pdf -pass pass:testpassword -p
下面是加密完成后显示的密钥和盐:
salt=BE1EFCBAE984CB24
key=50B62ECEF1B777353372A44CDDC463987815F783E39D68B8EE6A0AB74A79C7FA
如果使用以下解密,我曾尝试解密:
String key = "50B62ECEF1B777353372A44CDDC463987815F783E39D68B8EE6A0AB74A79C7FA";
byte[] keyBytes = key.getBytes("UTF-8");
SecretKey keySpec = new SecretKeySpec(keyBytes, "AES");
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS7Padding");
cipher.init(Cipher.DECRYPT_MODE, keySpec);
buffer = cipher.doFinal(buffer);
如何在Android中解密加密文件?
1 回答
我对原来的答案嗤之以鼻 . 我误读了字符串为“base 64” . 事实上,它只是“十六进制编码” .
更改此声明:
为此:
其中hexStringToByteArray是函数lifted from this answer here.