0

I hope you are feeling good. I am coming here today to expose de following question:

I am doing a sign up activity in android using kotlin using the following code:

`` class SignUp : AppCompatActivity() {

private lateinit var binding: ActivitySignUpBinding

private lateinit var actionBar: ActionBar

private lateinit var progressDialog: ProgressDialog

private lateinit var firebaseAuth: FirebaseAuth

//Dados de para o sign up
private var email=""
private var password=""
private var passwordrepeat=""

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    binding = ActivitySignUpBinding.inflate(layoutInflater)
    setContentView(binding.root)

    actionBar = supportActionBar!!
    actionBar.title="Sign Up"
    actionBar.setDisplayHomeAsUpEnabled(true)
    actionBar.setDisplayShowHomeEnabled(true)

    //Barra de Progresso
    progressDialog = ProgressDialog(this)
    progressDialog.setTitle("@string/")
    progressDialog.setMessage("Creating account")
    progressDialog.setCanceledOnTouchOutside(false)

    //Base de dados
    firebaseAuth = FirebaseAuth.getInstance()

    //Botão de Sign Up
    binding.buttonSignUp.setOnClickListener{
        validateData()
    }

}

//Variavel para dar store ao endereço predefenido
val EMAIL_ADDRESS_PATTERN = Pattern.compile(
    "[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" +
            "\\@" +
            "ipvc" +
            "(" +
            "\\." +
            "pt" +
            ")+"
)

//Validar Email
fun isValidString(str: String): Boolean{
    return EMAIL_ADDRESS_PATTERN.matcher(str).matches()
}



//validar dados do formulario
private fun validateData() {
    email = binding.emailText.text.toString().trim()
    password = binding.passwordText.text.toString().trim()
    passwordrepeat = binding.passwordText2.text.toString().trim()

    //Validar email do ipvc
      if (!isValidString(email)) {
        binding.emailTF.error = "@string/useipvc"
    //Validar preenchimento da password
    }else if (TextUtils.isEmpty(password)) {
        binding.passwordTF.error = "Please enter password"
    //Validar preenchimento da password repeat
    }else if(TextUtils.isEmpty(passwordrepeat)){
        binding.passwordTF2.error="Please repeat password"
    //Comparar passwords
    }else if(password != passwordrepeat) {
        binding.passwordTF2.error="Passwords don´t match"
    //Verificar se passwords são curtas
    }else if (password.length < 6){
        binding.passwordTF.error = "Password must have atleast 6 caracters"
  //Caso nada esteja incorreto, iniciar login
    }else{
        firebaseSignUp()
    }
}


    //Login na base de dados
private fun firebaseSignUp() {

    //Mostrar barra de progresso
    progressDialog.show()

    //Criar utilizador com os dados fornecidos
    firebaseAuth.createUserWithEmailAndPassword(email, password)
            //Em caso do utilizador ser criado com sucesso
        .addOnSuccessListener {
            val firebaseUser = firebaseAuth.currentUser
            val email = firebaseUser!!.email
            Toast.makeText(this, "Account have been created with email $email", Toast.LENGTH_LONG).show()
            val user = FirebaseAuth.getInstance().currentUser
            if (user != null) {
                user.sendEmailVerification()
            };
            //Terminar sessão para validar o e-mail primeiro
            firebaseAuth.signOut()
            //Mudar de layout
            startActivity(Intent(this, LoginActivity::class.java))
            finish()
        }
            //Em caso do utilizador não ter cido criado
        .addOnFailureListener{e->
            progressDialog.dismiss()
            Toast.makeText(this, "Sign Up Failed due to ${e.message}", Toast.LENGTH_LONG).show()
        }
}

override fun onSupportNavigateUp(): Boolean {
    onBackPressed() //Voltar a atrás quando o botão é pressionado
    return super.onSupportNavigateUp()
}

}``

Is there a way to create an encryption to send an encrypted password to firebase? And if it is, is there a point doing it? And if it is is there a point desyncript back?

Thank you very much, and sorry for noobish mistakes, i am new at this

Filipe Cruz
  • 81
  • 1
  • 10
  • Follow this thread for encryption of password-https://stackoverflow.com/questions/49340005/encrypt-decrypt-string-kotlin When you are sending Signup password as encrypted format same function use for Login time if you will get same keys ,then your login will successful otherwise fail. – Sandesh Khutal May 05 '22 at 16:16
  • In market lot of encryption/decryption algorithms are available but as per your project security choose correct algorithm. – Sandesh Khutal May 05 '22 at 16:17
  • Alright, but it is there a point using encryption? – Filipe Cruz May 05 '22 at 16:49
  • I think it will gives you better understanding as per market scenario's -https://us.norton.com/internetsecurity-privacy-what-is-encryption.html – Sandesh Khutal May 05 '22 at 18:01

0 Answers0