【问题标题】:How to verify a RSA signature generated from react native lib in php如何验证从 php 中的 react native lib 生成的 RSA 签名
【发布时间】:2022-01-13 21:19:12
【问题描述】:

react native library for biometrics 生成一个 base 64 签名,我想使用存储在数据库中的公钥 RSA 2048 作为纯文本(也由库生成)来验证该签名,以使用正确的公钥验证用户。 在 Topaco 的评论之后,我注意到公钥和签名作为单行字符串从库中返回,没有填充。

$publicKeyResource = openssl_pkey_get_public(("-----BEGIN PUBLIC KEY-----\n".$publicKey."\n-----END PUBLIC KEY-----"));
$verify = openssl_verify($message, base64_decode($signature), $publicKeyResource, "sha256withRSAEncryption" );

$verify 总是返回 0

格式化后的公钥示例:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyEQAmIthd0J7TdWGLt1X
Q3TdGhzoXVMiiENy9HDqlQKPImEwy4PEzJUr9JEZsWE4LarxsgkKnVZgiE+cNxSV
cE+zVBNaeb2hKxejrRVBpe9xgXb2agjrG7twuTKyBe+SeEIB1LRfwVHcKw7jSLle
ih4xhMHtZ6Q/crgzkBLH/EZ47stTv80EcFvreM7S+bfVfajE7qiuNHvPNaRtLEVh
iC4PTUqSfnuEb1xv3uC7mnIRNLTxfgbwUmzjjfnUlr+jxcWyb35JVCtgb3nsV/2H
G0TCSyNJ5X0tPfIDy7EfDjc9Mj9n+thPgTKCtbMXwPCQu7jLqI4AAubstJv3p3Uc
NQIDAQAB
-----END PUBLIC KEY-----

消息的签名示例:“auth”

mglZm2RKmkBIR+cNkuOJwAjnJJUAoyUl4w5NnzJsAFxuyvRhlJ3RS1Jksvzn90lp6lRG8aBy0nbxyCR2CpOjCH3G4XuUThTpJ862CPp5OMI9t9Ne6+/w2YiLj0Raq6WAiNDqxzg1PKRzojLvVpZd9P1URpevkoG6cQnk+FzITtESDmGaPtIgMV9ON2rrtF7Occ1PblFjSwCfkm3To3R4QdBgiVSdLIjoJvdff2RzId2dlGZxxiKyLs5JK6oFppmls/TcfMVvffj/fBFW9HjIggpHz8KmJTSb1crepK9WxrkKMvMs2Qsbd5nzf/SwiXDfFaBMKXJ30/2e3TqQ3CFXiQ==

我找到了一个关于同一个库的similiar question,但他们的解决方案与我使用的相同,但对我不起作用。

【问题讨论】:

  • 请检查数据。密钥和签名似乎不匹配(假定为 PKCS#1 v1.5 填充)。
  • @Topaco 我尝试使用 openssl_pkey_get_public 进行公钥填充,但仍然得到相同的结果(代码已更新)
  • 数据似乎不一致。同样在 Java 下,无法使用您发布的密钥验证签名(使用 react native libarary 的参数)。
  • 我还检查并得出了与 Topaco 相同的结论:假设 PKCS#1 v1.5,似乎没有使用与您发布的公钥配套的私钥进行签名。跨度>

标签: php react-native cryptography rsa


【解决方案1】:

问题是我有一段我忘记了的代码,它调用了在身份验证之前生成新密钥对的函数(当我检查设备是否支持生物识别时),所以我正在验证一个新密钥与保存在数据库中的旧密钥生成的签名。感谢@Topaco 和@President James K. Polk 确认签名和公钥不一致

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-22
    • 1970-01-01
    • 2019-12-27
    • 2020-09-08
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多