正在查看: Loan Locker v1.5 应用的 ResetPasswordWithToken.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Loan Locker v1.5 应用的 ResetPasswordWithToken.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.user.a4keygen.activity;
import android.app.admin.DevicePolicyManager;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.user.a4keygen.DeviceAdminReceiver;
import com.user.a4keygen.R;
import com.user.a4keygen.sharedprefrence.SharedPrefManager;
import com.user.a4keygen.webutil.WebClientService;
import java.nio.charset.StandardCharsets;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.util.Base64;
public class ResetPasswordWithToken extends AppCompatActivity {
private static final String PREFS_NAME = "password-token";
private static final String TOKEN_NAME = "token";
private DevicePolicyManager mDpm;
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.activity_rebood_device);
this.mDpm = (DevicePolicyManager) getSystemService(DevicePolicyManager.class);
byte[] activeResetPasswordToken = getActiveResetPasswordToken();
String stringExtra = getIntent().getStringExtra("password");
if (!WebClientService.isNull(stringExtra)) {
resetPasswordWithToken(activeResetPasswordToken, stringExtra);
} else {
resetPasswordWithToken(activeResetPasswordToken, null);
}
}
private byte[] createNewPasswordToken() {
byte[] generateRandomPasswordToken = generateRandomPasswordToken();
if (!this.mDpm.setResetPasswordToken(DeviceAdminReceiver.getComponentName(this), generateRandomPasswordToken)) {
showToast(getString(R.string.set_password_reset_token_failed));
return generateRandomPasswordToken;
}
savePasswordResetTokenToPreference(generateRandomPasswordToken);
return generateRandomPasswordToken;
}
private byte[] getActiveResetPasswordToken() {
byte[] loadPasswordResetTokenFromPreference = loadPasswordResetTokenFromPreference(this);
return loadPasswordResetTokenFromPreference == null ? createNewPasswordToken() : loadPasswordResetTokenFromPreference;
}
public byte[] loadPasswordResetTokenFromPreference(Context context) {
String string = context.createDeviceProtectedStorageContext().getSharedPreferences(PREFS_NAME, 0).getString(TOKEN_NAME, null);
if (string == null) {
return null;
}
Toast.makeText((Context) this, (CharSequence) string, 0).show();
return Base64.getDecoder().decode(string.getBytes(StandardCharsets.UTF_8));
}
private void savePasswordResetTokenToPreference(byte[] bArr) {
SharedPreferences.Editor edit = createDeviceProtectedStorageContext().getSharedPreferences(PREFS_NAME, 0).edit();
if (bArr != null) {
Toast.makeText((Context) this, (CharSequence) Base64.getEncoder().encodeToString(bArr), 0).show();
edit.putString(TOKEN_NAME, Base64.getEncoder().encodeToString(bArr));
} else {
edit.remove(TOKEN_NAME);
}
edit.commit();
}
public byte[] generateRandomPasswordToken() {
try {
return SecureRandom.getInstance("SHA1PRNG").generateSeed(32);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return null;
}
}
private void removePasswordToken() {
if (!this.mDpm.clearResetPasswordToken(DeviceAdminReceiver.getComponentName(this))) {
showToast(getString(R.string.clear_password_reset_token_failed));
} else {
savePasswordResetTokenToPreference(null);
}
}
private void resetPasswordWithToken(byte[] bArr, String str) {
if (bArr != null) {
if (this.mDpm.resetPasswordWithToken(DeviceAdminReceiver.getComponentName(this), str, bArr, 2)) {
showToast(getString(R.string.reset_password_with_token_succeed, new Object[]{"****"}));
SharedPrefManager.getInstance(this).savePassword(str);
return;
} else {
showToast("Failed to reset password");
return;
}
}
showToast("Token is null");
}
private void showToast(String str) {
Toast.makeText((Context) this, (CharSequence) str, 1).show();
}
}