小编Egi*_*gis的帖子

Android P 上的 ECDSA 数字签名验证

import android.os.Bundle;
import android.util.Base64;
import android.widget.Toast;
import org.bouncycastle.jce.provider.BouncyCastleProvider; // implementation 'org.bouncycastle:bcprov-jdk16:1.46'
import java.security.KeyFactory;
import java.security.PublicKey;
import java.security.Security;
import java.security.Signature;
import java.security.spec.X509EncodedKeySpec;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    static final String PUBLIC_KEY = "MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEMEV3EPREEDc0t4MPeuYgreLMHMVfD7iYJ2Cnkd0ucwf3GYVySvYTttMVMNMEKF554NYmdrOlqwo2s8J2tKt/oQ==";

    static final String DATA = "Hello";

    static final String SIGNATURE = "MEUCIQCsuI4OcBAyA163kiWji1lb7xAtC8S0znf62EpdA+U4zQIgBcLbXtcuxXHcwQ9/DmiVfoiigKnefeYgpVXZzjIuYn8=";

    static boolean verifyData() throws Exception {
        PublicKey pk = getPublicKey();
        byte[] signatureBytes = Base64.decode(SIGNATURE, Base64.NO_WRAP);

        Signature signature = Signature.getInstance("SHA256withECDSA", "BC");
        signature.initVerify(pk);
        signature.update(DATA.getBytes("UTF-8"));
        return signature.verify(signatureBytes);
    }

    static PublicKey getPublicKey() throws Exception {
        Security.addProvider(new BouncyCastleProvider()); …
Run Code Online (Sandbox Code Playgroud)

android bouncycastle digital-signature ecdsa

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

android 模拟器上的分屏(多窗口)模式?

在物理设备上,您长按最近使用的应用程序按钮并激活分屏模式。在 android 模拟器上做同样的事情是行不通的。该怎么办? 在此处输入图片说明

android multi-window android-emulator split-screen

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

更改导航抽屉按钮(后退按钮)的颜色?

在我的应用程序中,我使用操作栏和导航抽屉。操作栏中有一个按钮用于打开和关闭导航抽屉。我想将其颜色更改为红色。我怎么做?

在此输入图像描述

android android-actionbar navigation-drawer

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

如何在Kotlin中从自身内部访问功能?

在Java中,我可以写这样的东西

final Handler handler = new Handler();
handler.post(new Runnable() {
    @Override
    public void run() {
        handler.post(this);
    }
});
Run Code Online (Sandbox Code Playgroud)

当我在Kotlin中编写类似的内容时,出现编译错误。thisLambda表达式内部无法正常运行。我能做什么?

val handler = Handler()
handler.post{
    handler.post(this) // this line throws a compilation error
}
Run Code Online (Sandbox Code Playgroud)

lambda kotlin

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

为什么&=运算符与&&的工作方式不同

我只是好奇java是如何工作的.有人可以解释为什么getBoolean在案例1中调用而未在案例2中调用?

public class Main {

    public static void main(String[] args) {
        System.out.println("---------- Case 1 ----------");
        boolean b = false;
        b &= getBoolean(true);

        System.out.println("---------- Case 2 ----------");
        b = false;
        b = b && getBoolean(true);
    }

    private static boolean getBoolean(boolean bool) {
        System.out.println("getBoolean(" + bool + ") was called\n");
        return bool;
    }

}
Run Code Online (Sandbox Code Playgroud)

输出:

---------- Case 1 ----------
getBoolean(true) was called

---------- Case 2 ----------
Run Code Online (Sandbox Code Playgroud)

java boolean operators

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