如何使用python验证来自android / java的ECC签名

时间:2017-08-10 10:07:53

标签: java android python

我使用ECDSA算法编写代码来签署字符串android。 这是我的代码:

String origin = txtChuoi.getText().toString();
try {
        byte[] chuoiInput = origin.getBytes("UTF-8");
        sig = Signature.getInstance("NONEwithECDSA","SC");
        sig.initSign(privateKey);
        sig.update(chuoiInput);
        signatureBytes = sig.sign();
        txtSign.setText(Base64.encodeToString(signatureBytes,Base64.DEFAULT));
    } catch (Exception e) {
        e.printStackTrace();
}

我可以在相同的代码应用程序中验证此符号字符串(使用Java / Android)。这是我的代码:

String origin = txtChuoi.getText().toString();
try {
      sig = Signature.getInstance("NONEwithECDSA","SC");
      sig.initVerify(publicKey);
      byte[] chuoiInput = origin.getBytes("UTF-8");
      sig.update(chuoiInput);
      txtVerify.setText(sig.verify(signatureBytes)+"");
 } catch (Exception e) {
      e.printStackTrace();
 }

但不是我想在我的ubuntu服务器上验证它。

我遇到了麻烦。 如何使用python实现验证码? 我不能将publickey代码写入pem文件,如下所示:

-----BEGIN PUBLIC KEY-----
  MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEfUnusZsShxFLUuAwwAyFAkGCq3mBy98RXIkTP8YiTO3qmL8w6eMdMadiHfdCG2emktDrUwzNmTr9nMFCFhXdGQ==
-----END PUBLIC KEY-----

但签名怎么样?我认为(但不确定)它会在字节[]上验证。

python如何做到这一点?

1 个答案:

答案 0 :(得分:0)

这里有一个类似的问题答案: How to sign and verify signature with ecdsa in python

您需要准备公钥以进行验证。您提到的PEM文件具有base64编码。