问题描述
我已将我的应用与 Mongo 服务器连接,通过电子邮件和密码进行注册。 所以,我的问题包括使用 SHA-512 散列密码,我的数据库无法在 SHA-512 中响应密码 我该怎么做才能让我的 Mongo 数据库可以读取 SHA-512 中的密码并登录用户?我用来散列密码的代码:
@file:JvmName("StringExt")
package com.mongodb.tasktracker
import java.security.MessageDigest
fun String.toSha512(): String{
val HEX_CHARS = "0123456789ABCDEF"
val bytes = MessageDigest
.getInstance("SHA-512")
.digest(this.toByteArray())
val result = StringBuilder(bytes.size * 2)
bytes.forEach {
val i = it.toInt()
result.append(HEX_CHARS[i shr 4 and 0x0f])
result.append(HEX_CHARS[i and 0x0f])
}
return result.toString().toLowerCase()
}
if (createuser) {
// register a user using the Realm App we created in the TaskTracker class
taskApp.emailPassword.registerUserAsync(username,password.toSha512()) {
// re-enable the buttons after user registration returns a result
createuserButton.isEnabled = true
loginButton.isEnabled = true
if (!it.isSuccess) {
onLoginFailed("Could not register user.")
Log.e(TAG(),"Error: ${it.error}")
} else {
Log.i(TAG(),"Successfully registered user.")
// when the account has been created successfully,log in to the account
login(false)
}
}
} else {
val creds = Credentials.emailPassword(username,password.toSha512())
taskApp.loginAsync(creds) {
// re-enable the buttons after user login returns a result
loginButton.isEnabled = true
createuserButton.isEnabled = true
if (!it.isSuccess) {
onLoginFailed(it.error.message ?: "An error occurred.")
} else {
onLoginSuccess()
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)