美文网首页
Android系统中的安全和加密

Android系统中的安全和加密

作者: 小城哇哇 | 来源:发表于2022-10-17 17:15 被阅读0次

首先,让我向您解释100%的安全性永远不会存在每个库和加密逻辑都有一些漏洞,但请尝试使您的应用程序尽可能安全。如果你是一个初学者,你可以认为android是完全安全的,我们生活在一个安全的世界,但如果你不遵守某些规则,你的应用程序很容易被黑客入侵。

让我们看看一些默认的安全性去清单限制用户允许备份,如果不需要备份,这是一个功能,但它也是一个漏洞黑客可以备份应用程序并玩你的数据,并且还设置安装位置内部,以便它可以安装在内部存储中。

android:name=".MyApplication"
        android:allowBackup="false"
        android:hardwareAccelerated="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:installLocation="internalOnly"
        android:theme="@style/AppTheme"
        android:usesCleartextTraffic="true">

现在让我们来看看人们经常保存数据的更多安全规则,这是在Android中共享的首选项,它将数据存储在XML中。始终确保您的模式仅是私有的。这会限制任何人与您的应用会话数据进行交互,但有一个限制。

sharedPreferences = context!!.getSharedPreferences("userinfo", Context.MODE_PRIVATE)

等等,现在还不够,一个普通人不能破解你,但一个专业人士呢?是的,这在没有root备份的自定义ROM中是可能的,并且可以读取共享首选项。让它从专业版中保护它。

要保存您的应用程序,现在您必须使用加密,因为如果您正在使用API,您知道我们需要保存会话令牌,并且所有其他API在我们传递该会话令牌时都可以工作。

现在,如果您阅读有关加密的信息,您就会知道生成了一个加密密钥,您必须保存加密密钥和加密数据,当您使用该数据时,您必须解密该密钥。这增加了应用程序非常好的安全性,现在唯一的问题是逆向工程,有几个工具可以通过您的应用程序进行反编译。

现在谷歌已经宣布了加密共享特权它保存主密钥,因为您可以理解为Android密钥库中的加密密钥,这是硬件级别的安全性让我们看看如何实现它。

   implementation "androidx.security:security-crypto:1.0.0-rc01"

在 Gradle 版本中添加以下行:

class EncrytedtedHash(internal var context: Context?=null) {
    lateinit var masterKeyAlias: String
    lateinit var sharedPreferences: SharedPreferences
    init {
        masterKeyAlias = MasterKeys.getOrCreate(MasterKeys.AES256_GCM_SPEC)
        sharedPreferences = EncryptedSharedPreferences.create(
            "encrypted_shared_prefs",
            masterKeyAlias,
            context!!,
            EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
            EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
        )
    }
    fun Store( data:String){

        sharedPreferences.edit().putString("DATA",data).apply()
    }
    fun Retrive():String?{
        var restored = sharedPreferences.getString("DATA","")
        return  restored
    }

}

上面的代码,你可以用于加密共享的Preference你可以简单地传递字符串在存储函数和检索它,它通过检索函数没有必要将密钥保存在字符串中,这有利于安全目的。

相关文章

网友评论

      本文标题:Android系统中的安全和加密

      本文链接:https://www.haomeiwen.com/subject/gicszrtx.html