앱을 개발 중이지만 문제가 발생했습니다. 나는 암호화 할 수 있지만 해독 할 수는 없다. 내가 고칠 수있게 도와 줄 수 있니?android에서 AESCrypt로 암호화 및 암호 해독
앱에 중요한 데이터가 있고 암호화 된 데이터로 Firebase
을 보내고 싶지만 목록에 계속 해독됩니다. password
및 Message
변수는 같은 일 (selectedUser.getPassword().trim()
)를 할당
public class UserActivity extends AppCompatActivity {
private EditText input_tipo, input_id, input_password;
private ListView list_data;
private FirebaseDatabase mFirebaseDatabase;
private DatabaseReference mDatabaseReference;
private FirebaseAnalytics firebaseAnalytics;
private List<User> list_users = new ArrayList<>();
private User selectedUser;
private FirebaseAuth mAuth;
private FirebaseUser mUser;
private String encryptPass, decryptPass;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user);
Toolbar tool = (Toolbar) findViewById(R.id.toolbar);
tool.setTitle("MySecurity");
setSupportActionBar(tool);
input_tipo = (EditText) findViewById(R.id.tipo);
input_id = (EditText) findViewById(R.id.id);
input_password = (EditText) findViewById(R.id.password);
list_data = (ListView) findViewById(R.id.list_data);
mAuth = FirebaseAuth.getInstance();
mUser = mAuth.getCurrentUser();
list_data.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
User user = (User) adapterView.getItemAtPosition(i);
selectedUser = user;
input_tipo.setText(user.getTipo());
input_id.setText(user.getId());
input_password.setText(user.getPassword());
}
});
initFirebase();
addEventFirebaseListener();
findNetwork();
}
private void findNetwork() {
ConnectivityManager CM = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo ninfo = CM.getActiveNetworkInfo();
if (ninfo != null && ninfo.isConnectedOrConnecting()) {
Toast.makeText(getBaseContext(), "Connesso in Firebase:" + ninfo.getTypeName(), Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getBaseContext(), "Connessione internet assente", Toast.LENGTH_LONG).show();
}
}
private void addEventFirebaseListener() {
list_data.setVisibility(View.VISIBLE);
mDatabaseReference.child("users").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (list_users.size() > 0)
list_users.clear();
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
User user = postSnapshot.getValue(User.class);
list_users.add(user);
}
ListViewAdapter adapter = new ListViewAdapter(UserActivity.this, list_users);
list_data.setAdapter(adapter);
list_data.setVisibility(View.VISIBLE);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
private void initFirebase() {
FirebaseApp.initializeApp(this);
mFirebaseDatabase = FirebaseDatabase.getInstance();
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
firebaseAnalytics = FirebaseAnalytics.getInstance(this);
firebaseAnalytics.setAnalyticsCollectionEnabled(true);
firebaseAnalytics.setMinimumSessionDuration(5000);
mDatabaseReference = mFirebaseDatabase.getReference().child("users").child(mUser.getUid());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.home, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.menu_add) {
createUser();
} else if (item.getItemId() == R.id.menu_remove) {
deleteUser(selectedUser);
} else if (item.getItemId() == R.id.menu_deselect) {
DeselectedUser(selectedUser);
}else if(item.getItemId()== R.id.menu_decrypt){
DecryptUser(selectedUser);
}
return true;
}
private void DecryptUser(User selectedUser) {
if (selectedUser != null) {
mDatabaseReference.child("users").child(selectedUser.getUid());
String password = selectedUser.getPassword().trim();
String Message= selectedUser.getPassword().trim();
try {
decryptPass= AESCrypt.decrypt(password, Message);
input_tipo.setText(input_tipo.getText().toString());
input_id.setText(input_id.getText().toString());
input_password.setText(decryptPass);
} catch (Exception e) {
e.printStackTrace();
}
}
}
private void DeselectedUser(User selectedUser) {
if (selectedUser != null) {
mDatabaseReference.child("users").child(selectedUser.getUid());
clearEditText();
}
}
private void deleteUser(User selectedUser) {
if (selectedUser != null) {
mDatabaseReference.child("users").child(selectedUser.getUid()).removeValue();
clearEditText();
}
}
private void createUser() {
String password = input_password.getText().toString().trim();
String Message= input_password.getText().toString().trim();
try {
encryptPass = AESCrypt.encrypt(password, Message);
User user1= new User(UUID.randomUUID().toString(), input_tipo.getText().toString(),
input_id.getText().toString(), encryptPass);
mDatabaseReference.child("users").child(user1.getUid()).setValue(user1);
clearEditText();
} catch (Exception e) {
e.printStackTrace();
}
}
private void clearEditText() {
input_tipo.setText("");
input_id.setText("");
input_password.setText("");
}
@Override
protected void onStop() {
super.onStop();
finish();
}
}
"암호화 할 수는 있지만 해독 할 수는 없습니다." 해독하려고하면 어떻게됩니까? –
그것은 암호화 된 상태로 유지됩니다. 문자열은 암호 해독되지 않습니다. – Marco