所以我有一個小問題。我無法找到如何在SD卡或其他地方可以查看圖像(無論在哪裏)解密後保存位圖文件。我現在使用的代碼是:如何在Android中保存並顯示位圖?
public class SimpleCryptoActivity extends Activity {
private static final int IO_BUFFER_SIZE = 4 * 1024;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try {
AssetManager am = this.getAssets();
InputStream is = am.open("2000_1.jpg_encrypted"); // get the encrypted image from assets folder
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] b = new byte[IO_BUFFER_SIZE];
int read;
while ((read = is.read(b)) != -1) { //convert inputstream to bytearrayoutputstream
baos.write(b, 0, read);
}
long start = System.currentTimeMillis()/1000L; // start
byte[] keyStart = "MARTIN_123_MARTIN_123".getBytes(); // specific key value
KeyGenerator kgen = KeyGenerator.getInstance("AES"); //aes
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
sr.setSeed(keyStart);
kgen.init(128, sr);
SecretKey skey = kgen.generateKey();
byte[] key = skey.getEncoded();
byte[] decryptedData = decrypt(key,b); //decryption
long end = System.currentTimeMillis()/1000L; // end
Log.i("TEST","Time start "+ String.valueOf(start)); //showing the strat in ms
Log.i("TEST","Time end "+ String.valueOf(end)); //showing the end in ms
Bitmap bitmap = BitmapFactory.decodeByteArray(b , 0, b .length); //decoding bytearrayoutputstream to bitmap
is.close(); // close the inputstream
baos.close(); // close the bytearrayoutputstream
}
catch(Exception e){
e.fillInStackTrace();
}
}
//decrypt
private byte[] decrypt(byte[] raw, byte[] encrypted) throws Exception {
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, skeySpec);
byte[] decrypted = cipher.doFinal(encrypted);
return decrypted;
}
}
另一個問題too.I'm好奇,爲什麼我不能看到LogCat.Am的
Log.i("TEST","Time start "+ String.valueOf(start)); //showing the strat in ms
Log.i("TEST","Time end "+ String.valueOf(end)); //showing the end in ms
我做錯了什麼還是...?感謝您的幫助!
我用imageView做了它,沒有錯誤它是運行但圖像沒有顯示出來。 – hardartcore
等待我正在嘗試類似於創建'private class'並將其擴展到'ImageView'並使用'onDraw()'來完成這項工作。 –
你能告訴我我應該在哪裏添加這段代碼,因爲我真的沒有明白嗎?謝謝! – hardartcore