Mam pewien problem z wyjątkiem:
String barcodeString = barcodes.valueAt(0).displayValue;
try {
decodedBarcodeValue = decrypt3Des(barcodeString, uuidDevice);
} catch (Exception e) {
e.printStackTrace();
}
metoda deszyfrująca
private static String decrypt3DES(String encryptedText, String secretKey) throws Exception {
byte[] message = Base64.decodeBase64(encryptedText.getBytes("utf-8"));
MessageDigest md = MessageDigest.getInstance("SHA-256");
byte[] digestOfPassword = md.digest(secretKey.getBytes("utf-8"));
byte[] keyBytes = Arrays.copyOf(digestOfPassword, 24);
SecretKey key = new SecretKeySpec(keyBytes, "DESede");
Cipher decipher = Cipher.getInstance("DESede");
decipher.init(Cipher.DECRYPT_MODE, key);
byte[] plainText = decipher.doFinal(message);
return new String(plainText, "UTF-8");
}
ale jak w barcodeString posiadamy string "Klasa" aplikacja zatrzymała się pojawia się alert "Niestety aplikacja została zatrzymana "
wiec próbuje
try {
decodedBarcodeValue = decrypt3DES(barcodeString, uuidDevice);
} catch (Exception e) {
e.printStackTrace();
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(ScanQrCodeActivity.this);
alertDialogBuilder.setTitle("Błędny QR Code");
alertDialogBuilder.setMessage("dfdsgsure, You wanted to make decision");
alertDialogBuilder.setPositiveButton("yes",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
}
});
alertDialogBuilder.setNegativeButton("No",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
nagle powoduje znów następne zatrzymanie aplikacji . Nie wiem w czyn jest rzecz .