Android 中的密码比较
Password comparing in Android
所以我在共享首选项中将密码存储为散列,当用户输入密码时,我需要对其进行散列并与存储的进行比较。
是否应该在 AsyncTask 或 Thread 中完成,因为计算和比较可能会冻结 UI?然后您知道从异步任务或线程接收结果(真、假)的简洁方法吗?
public void startGenerateCode(View view) {
String pinCompare = pin; //pin is class variable obtained from editText
pinCompare = tools.bin2hex(tools.getHash(pinCompare));
if(pinCompare.compareTo(session.getDetails("Pin"))==0){
generateCode();
}
else
Toast.makeText(this, "Wrong PIN", Toast.LENGTH_SHORT).show();
}
public void generateCode(){
Intent i = new Intent(this, GeneratedCode.class);
startActivity(i);
overridePendingTransition(R.anim.right_slide_in, R.anim.right_slide_out);
finish();
}
这是在 activity 按下按钮后完成的。
佐罗,
我猜这个过程是在有人按Button
时触发的,例如登录。我认为您不需要任何额外的 Thread
来处理 Hash
微积分。
如果您随后必须连接到服务器和 send/receive 数据,那么由于异步流,您应该使用它。
对主要评论的回应post:
是的,您可以在 onPostExecute
.
中开始一个 Activity
代码示例:
public void startGenerateCode(View view) {
// Disable button
Button button = (Butto) view;
button.setEnabled(false);
String pinCompare = pin; //pin is class variable obtained from editText
pinCompare = tools.bin2hex(tools.getHash(pinCompare));
if(pinCompare.compareTo(session.getDetails("Pin"))==0){
generateCode();
} else {
// If the login fails, re-enable the button to try again
button.setEnabled(true);
Toast.makeText(this, "Wrong PIN", Toast.LENGTH_SHORT).show();
}
}
我是背诵的,所以可能会有错误。
所以我在共享首选项中将密码存储为散列,当用户输入密码时,我需要对其进行散列并与存储的进行比较。
是否应该在 AsyncTask 或 Thread 中完成,因为计算和比较可能会冻结 UI?然后您知道从异步任务或线程接收结果(真、假)的简洁方法吗?
public void startGenerateCode(View view) {
String pinCompare = pin; //pin is class variable obtained from editText
pinCompare = tools.bin2hex(tools.getHash(pinCompare));
if(pinCompare.compareTo(session.getDetails("Pin"))==0){
generateCode();
}
else
Toast.makeText(this, "Wrong PIN", Toast.LENGTH_SHORT).show();
}
public void generateCode(){
Intent i = new Intent(this, GeneratedCode.class);
startActivity(i);
overridePendingTransition(R.anim.right_slide_in, R.anim.right_slide_out);
finish();
}
这是在 activity 按下按钮后完成的。
佐罗,
我猜这个过程是在有人按Button
时触发的,例如登录。我认为您不需要任何额外的 Thread
来处理 Hash
微积分。
如果您随后必须连接到服务器和 send/receive 数据,那么由于异步流,您应该使用它。
对主要评论的回应post:
是的,您可以在 onPostExecute
.
代码示例:
public void startGenerateCode(View view) {
// Disable button
Button button = (Butto) view;
button.setEnabled(false);
String pinCompare = pin; //pin is class variable obtained from editText
pinCompare = tools.bin2hex(tools.getHash(pinCompare));
if(pinCompare.compareTo(session.getDetails("Pin"))==0){
generateCode();
} else {
// If the login fails, re-enable the button to try again
button.setEnabled(true);
Toast.makeText(this, "Wrong PIN", Toast.LENGTH_SHORT).show();
}
}
我是背诵的,所以可能会有错误。