0
无阻塞密码流,即使仍然块你好,我使用的密码在这个岗位5777105应用使用带有插座
但直到达到解密代码仍然块缓冲区的大小。你知道另一种方法来使它不被阻塞吗?请注意,解密部分正在Android上运行。
加密部分:
CipherInputStream cis;
String salt = "123456789";
String password = "abcdEFGH";
password = password.concat(salt);
String validpassword = password.substring(0, 16);
SecretKeySpec secretKey = new SecretKeySpec(validpassword.getBytes(),"AES");
AlgorithmParameterSpec paramSpec = new IvParameterSpec(salt.getBytes());
try {
// Creation of Cipher objects
Cipher encrypt =
Cipher.getInstance("AES/CFB8/NoPadding");
encrypt.init(Cipher.ENCRYPT_MODE, secretKey,paramSpec);
// Open the file
try {
fis = new FileInputStream(file);
} catch(IOException err) {
System.out.println("Cannot open file!");
return null;
}
cis = new CipherInputStream(fis, encrypt);
// Write to the Encrypted file
fos = new FileOutputStream(desFile);
byte[] b = new byte[256];
int i = cis.read(b);
while (i != -1) {
fos.write(b, 0, i);
i = cis.read(b);
}
解密部:
CipherInputStream cis;
String salt = "123456789";
String password = "abcdEFGH";
password = password.concat(salt);
String validpassword = password.substring(0, 16);
SecretKeySpec secretKey =new SecretKeySpec(validpassword.getBytes(),"AES");
AlgorithmParameterSpec paramSpec = new IvParameterSpec(salt.getBytes());
try {
// Creation of Cipher objects
Cipher decrypt =
Cipher.getInstance("AES/CFB8/NoPadding");
decrypt.init(Cipher.DECRYPT_MODE, secretKey,paramSpec);
// Open the Encrypted file
cis = new CipherInputStream(is, decrypt);
int bytesRead;
int current = 0;
byte[] b = new byte[256];
bytesRead = cis.read(b,0,256);