我使用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如何做到这一点?
答案 0 :(得分:0)
这里有一个类似的问题答案: How to sign and verify signature with ecdsa in python
您需要准备公钥以进行验证。您提到的PEM文件具有base64编码。