Use a safer algorithm, and limit the size of the hashed string.
Fix an issue reported by Sonar.
This commit is contained in:
parent
61323a89ad
commit
64a7fc5f52
2 changed files with 7 additions and 5 deletions
|
|
@ -19,7 +19,7 @@ package io.element.android.features.ftue.impl.migration
|
|||
import android.content.SharedPreferences
|
||||
import androidx.core.content.edit
|
||||
import com.squareup.anvil.annotations.ContributesBinding
|
||||
import io.element.android.libraries.androidutils.hash.md5
|
||||
import io.element.android.libraries.androidutils.hash.hash
|
||||
import io.element.android.libraries.di.AppScope
|
||||
import io.element.android.libraries.di.DefaultPreferences
|
||||
import io.element.android.libraries.matrix.api.core.SessionId
|
||||
|
|
@ -49,7 +49,9 @@ class SharedPrefsMigrationScreenStore @Inject constructor(
|
|||
}
|
||||
|
||||
private fun SessionId.toKey(): String {
|
||||
return IS_MIGRATION_SCREEN_SHOWN_PREFIX + value.md5()
|
||||
// Hash the sessionId to get ride of exotic char and take only the first 16 chars,
|
||||
// The risk of collision is not high.
|
||||
return IS_MIGRATION_SCREEN_SHOWN_PREFIX + value.hash().take(16)
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
|
|
|||
|
|
@ -20,10 +20,10 @@ import java.security.MessageDigest
|
|||
import java.util.Locale
|
||||
|
||||
/**
|
||||
* Compute a Hash of a String, using md5 algorithm.
|
||||
* Compute a Hash of a String, using SHA-512 algorithm.
|
||||
*/
|
||||
fun String.md5() = try {
|
||||
val digest = MessageDigest.getInstance("md5")
|
||||
fun String.hash() = try {
|
||||
val digest = MessageDigest.getInstance("SHA-512")
|
||||
digest.update(toByteArray())
|
||||
digest.digest()
|
||||
.joinToString("") { String.format(Locale.ROOT, "%02X", it) }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue