Проверьте подписанные данные с помощью проверки в Android

Привет, я пишу эту функцию для входа в данные, используя secp256k1 в Android, но когда я пытаюсь проверить данные, это не сработало.

Вот мой знак функции в Android.

функция для проверки данных это

public static String sign(byte[] data, String privateKey) throws Exception {

    byte[] keyBytes = decryptBASE64(privateKey);
    PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(keyBytes);
    KeyFactory keyFactory = KeyFactory.getInstance("EC","BC");

    PrivateKey priKey = keyFactory.generatePrivate(pkcs8KeySpec);

    Signature signature = Signature.getInstance("SHA256withECDSA");
    signature.initSign(priKey);
    signature.update(data);

    return encryptBASE64(signature.sign());
}



public static boolean verify(byte[] data, String publicKey, String sign)
        throws Exception {

     byte[] keyBytes = decryptBASE64(publicKey);
     X509EncodedKeySpec keySpec = new X509EncodedKeySpec(keyBytes);
    KeyFactory keyFactory = KeyFactory.getInstance("EC");
    PublicKey pubKey = keyFactory.generatePublic(keySpec);

    Signature signature = Signature.getInstance("SHA256withECDSA");
    signature.initVerify(pubKey);

    signature.update(data);

    return signature.verify(decryptBASE64(sign));

}

Но проверочный код не сработал. пожалуйста, что не так в моем коде.

0 ответов

Другие вопросы по тегам