main Activity.java
import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;
import java.security.MessageDigest;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
public class qrscan extends AppCompatActivity {
private Button scan_butn;
private String output;
private TextView name, decryp;
private String AES= "AES";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_qrscan);
name =(TextView) findViewById(R.id.namedis_scn);
decryp=(TextView) findViewById(R.id.decyrpt);
final String Name= getIntent().getExtras().getString("NAME");
final String Passwd = getIntent().getExtras().getString("PASSWORD");
scan_butn = (Button) findViewById(R.id.login_scn);
name.setText(Name);
final Activity activity = this;
scan_butn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
output = encrypt(Name,Passwd);
}
catch (Exception e) {
e.printStackTrace();
}
IntentIntegrator integrator = new IntentIntegrator(activity);
integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
integrator.setPrompt("SCAN");
integrator.setCameraId(0);
integrator.setBeepEnabled(false);
integrator.setBarcodeImageEnabled(false);
integrator.initiateScan();
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode,data);
if (result != null) {
if (result.getContents()==null){
Toast.makeText(this, "you cancelled the scanning", Toast.LENGTH_LONG).show();
}
else {
(Toast.makeText(this , result.getContents(),Toast.LENGTH_LONG)).show();
if (output.contentEquals(result.getContents())){
Toast.makeText(this,"content matched",Toast.LENGTH_SHORT).show();
finish();
startActivity(new Intent(this,AVS2.class));
}else {
Toast.makeText(this,"content not matched",Toast.LENGTH_SHORT).show();
finish();
startActivity(new Intent(this,AVS1.class));
}
}
}
else{
super.onActivityResult(requestCode, resultCode, data);
}
}
private String encrypt(String Data, String passwd) throws Exception {
SecretKeySpec key = generateKey(passwd);
Cipher c= Cipher.getInstance(AES);
c.init(Cipher.ENCRYPT_MODE,key);
byte[] encVal = c.doFinal(Data.getBytes());
String encryptedValue = Base64.encodeToString(encVal,Base64.DEFAULT);
return encryptedValue;
}
private SecretKeySpec generateKey(String passwd) throws Exception {
final MessageDigest digest = MessageDigest.getInstance("SHA-256");
byte[] bytes = passwd.getBytes("UTF-8");
digest.update(bytes, 0, bytes.length);
byte[] key = digest.digest();
SecretKeySpec secretKeySpec =new SecretKeySpec(key, "AES");
return secretKeySpec;
}
}
i am able to scan qr from camera but i want also to let user scan image from phone photos or gallery and what all changes can be made to the code... please help........ zxing libraryr used
your reply will be apprieciated
thanks in advance......................................................