标签: android-security

应用在后台运行时需要隐藏活动或片段中的信息

在此处输入图片说明

我正在使用一个应用程序,例如带有一些机密信息的 chrome,我正在将其切换到后台 & 我试图终止该应用程序。

我在尝试杀死应用程序时上传了示例图像。即使会话已过期,当应用程序进入前台时,它也不会在终止阶段关闭信息,然后仅关闭信息。我希望信息在进入后台时应该关闭或隐藏(在杀死阶段)

我在谷歌搜索我没有得到任何与此相关的信息,我不知道我的搜索短语是否正确。任何人都可以请帮助我。

android android-configchanges android-security

1
推荐指数
1
解决办法
1389
查看次数

在android中将byte[]转换为十六进制字符串

我正在尝试将 byte[] 转换为十六进制字符串,并将相同的十六进制字符串转换为 android 中的 byte[] ,数据不匹配。

前任 :

收到字节[]数据:[B@b39c86a

转换后的十六进制字符串:8be897cc3c4d9e5dd6a6bbd106d8e8d487691b56

当我解码十六进制字符串时,我得到[B@ea6d15b,但它应该是[B@b39c86a

我正在使用下面的代码进行转换。

public String byte2hex(byte[] a) {
        /*StringBuilder sb = new StringBuilder(a.length * 2);

        for (byte b : a)
            sb.append(String.format("%02x", b & 0xff));
        return sb.toString();*/

        String hexString = "";

        for(int i = 0; i < a.length; i++){
            String thisByte = "".format("%x", a[i]);
            hexString += thisByte;
        }

        return hexString;

    }
    public static byte[] hexStringToByteArray(String s) {
       /* int len = s.length();
        byte[] data = new …
Run Code Online (Sandbox Code Playgroud)

java encryption android java-security android-security

1
推荐指数
1
解决办法
1万
查看次数

webview SSL 错误处理程序

我收到了来自 Google Play 商店的关于我的应用程序的通知

在此输入图像描述

这是我之前的代码..收到错误通知后,我从 google Android 开发人员页面查看并读取了 ssl 错误处理程序。这是我之前的代码在此输入图像描述

这是我的新的 在此输入图像描述

但同样的问题依然存在!!上传新版本后收到相同的通知

android android-studio android-security

1
推荐指数
1
解决办法
3783
查看次数

简单的发布请求在 android 9 中不起作用

我有一个在下面运行良好的应用程序Android9 phones。最近我开始测试我的应用程序android 9并面临一个奇怪的问题,即简单的 https/http 后调用不起作用,并且 library( com.loopj.android) 给出了一个无法连接的异常。我知道有一个与网络相关的变化,我尝试了我在互联网上找到的所有东西,但仍然没有运气。这是我的配置:

清单.xml:

  <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.INTERNET"/>
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

  <application
         tools:targetApi="28"
         android:networkSecurityConfig="@xml/network_security_config"
         android:usesCleartextTraffic="true">
  </application>
Run Code Online (Sandbox Code Playgroud)

res/xml 中的network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">my-backend.hostname.dk</domain>
        <trust-anchors>
            <certificates src="system" />
            <certificates src="user" />
        </trust-anchors>
    </domain-config>
</network-security-config>
Run Code Online (Sandbox Code Playgroud)

我正在使用正确的密钥库签署应用程序: build.gradle:

signingConfigs {
        release {
            storeFile file("../myApp-release.keystore")
            storePassword "abcd1234"
            keyAlias "myApp-release"
            keyPassword "abcd1234"
        }
    }
Run Code Online (Sandbox Code Playgroud)

还尝试为 httpclient使用正确的SSLFactory

AsyncHttpClient client = new AsyncHttpClient();
    try {
            KeyStore trustStore …
Run Code Online (Sandbox Code Playgroud)

ssl android android-permissions android-security android-9.0-pie

1
推荐指数
1
解决办法
5005
查看次数

更改 Android Kotlin 中的默认 FLAG_SECURE toast 消息

我在我的 Android 应用程序中使用了以下代码,以防止用户截取屏幕截图或屏幕录制:

if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) {
    window.setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE)
}
Run Code Online (Sandbox Code Playgroud)

它显示以下 toast 消息:“无法捕获屏幕,受 DRM 保护的图像。”

如何更改此 toast 消息?我尝试在 Stack Overflow 答案中搜索,但没有任何帮助,或者如果它是不可更改的,如何在检测到屏幕记录或捕获时显示另一条 toast 消息?

android kotlin android-toast android-drm android-security

1
推荐指数
1
解决办法
2014
查看次数

尽管在android清单中声明了所需的权限,但无法从设备获取电话号码

我正在尝试以编程方式从我的设备获取电话号码.我正在尝试使用以下代码:

TelephonyManager tMgr = (TelephonyManager) getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
mPhoneNumber = tMgr.getLine1Number();
Run Code Online (Sandbox Code Playgroud)

我在清单文件中声明了以下权限:

 <uses-permission android:name="android.permission.INTERNET" />
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
 <uses-permission android:name="android.permission.READ_SMS"/>
Run Code Online (Sandbox Code Playgroud)

但是我的应用程序仍然崩溃,堆栈跟踪如下:

E/AndroidRuntime: FATAL EXCEPTION: main
Process: toadways.ways.toad.toadways, PID: 29620
java.lang.RuntimeException: Unable to start activity ComponentInfo{toadways.ways.toad.toadways/toadways.ways.toad.toadways.RegistrationScreen}: java.lang.SecurityException: getLine1NumberForDisplay: Neither user 10240 nor current process has android.permission.READ_SMS.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.SecurityException: getLine1NumberForDisplay: Neither user 10240 nor current process has android.permission.READ_SMS.
at android.os.Parcel.readException(Parcel.java:1599) …
Run Code Online (Sandbox Code Playgroud)

android telephonymanager android-securityexception android-security

0
推荐指数
1
解决办法
7230
查看次数

使用 AndroidKeyStore &lt; Api23 生成 EC 密钥对

无法使用 AndroidKeystore 提供程序 one < api23 设备生成 EC 密钥对。

根据AndroidKeyStore文档

在 API 级别 23 之前,可以使用算法“RSA”初始化的 KeyPairGeneratorSpec 的 KeyPairGenerator 生成 EC 密钥,其密钥类型使用 setKeyType(String) 设置为“EC”。无法使用此方法指定 EC 曲线名称 - NIST P 曲线是根据请求的密钥大小自动选择的。

在 Api 23 以下,我应该能够使用 AndroidKeyStore 提供程序生成 EC 密钥对,如下所示的代码片段,这就是我当前正在做的事情。

val ecGenParameterSpec = ECGenParameterSpec("P-256")
val spec = KeyPairGeneratorSpec.Builder(context)
                .setAlias(ALIAS)
                .setSubject(X500Principal("CN=example"))
                .setSerialNumber(BigInteger.ONE)
                .setKeyType("EC")
                .setAlgorithmParameterSpec(ecGenParameterSpec)
                .setStartDate(start)
                .setEndDate(end)
                .build()
                val keyGen = KeyPairGenerator.getInstance("RSA", androidKeyStoreProvider)
keyGen.initialize(spec, SecureRandom())
keyGen.generateKeyPair()
Run Code Online (Sandbox Code Playgroud)

然而我不断得到java.lang.UnsupportedOperationException: private key value S cannot be extracted

我在使用 AndroidKeyStore 生成 EC 密钥对期间做错了什么吗?

或者我是否误解了官方AndroidKeyStore文档 …

android android-keystore android-security

0
推荐指数
1
解决办法
1296
查看次数