【问题标题】:PHP-React Verify Cryptographic SignaturePHP-React 验证加密签名
【发布时间】:2020-03-06 14:37:58
【问题描述】:

我在 React Native 中使用这个包进行生物认证:https://www.npmjs.com/package/react-native-biometrics

它将一个公钥发送到我们的 PHP 服务器,然后发送一个我们用来验证的加密签名。

是否有我们应该使用任何库来根据 PHP 中的加密签名验证公钥?

【问题讨论】:

  • 嗨,你找到答案了吗?我偶然发现了同样的问题。谢谢。
  • 查看更新的答案@kml

标签: php reactjs cryptography bioinformatics


【解决方案1】:

我就是这样做的

  1. public key 保存到数据库中
  2. 在每次生物识别尝试时,此库都会向 PHP 发送 signaturepayload
  3. 比较 signaturepublic key
  4. 验证用户成功,openssl_verify 将返回 0 或 1

第 3 步的代码是

openssl_verify( $有效载荷, base64_decode($signrature_in_step_3), $public_key_saved_in_step_1, “RSA-SHA256” );

PS:请确保步骤1中的public key格式正确,否则openssl_verify会抛出异常:在使用openssl_verify之前,请参阅以下示例以实现正确格式

$public_key_saved_in_step_1 = openssl_pkey_get_public("-----BEGIN PUBLIC KEY-----
$publicKeyStringFromDB
-----END PUBLIC KEY-----");

【讨论】:

  • 您是否将数据库中的公钥保存为字符串?并按原样重复使用?
  • $public_key_saved_in_step_1 是字符串吗?
  • 是的,公钥保存在数据库中
  • public_key_saved_in_step_1 应该有有效的格式否则 openssl_verify 会抛出异常
  • RSA Public Key -----BEGIN RSA PUBLIC KEY----- -----END RSA PUBLIC KEY-----
猜你喜欢
  • 2014-02-21
  • 2018-07-14
  • 1970-01-01
  • 2019-05-26
  • 2015-11-23
  • 2015-09-20
  • 1970-01-01
  • 1970-01-01
  • 2016-01-14
相关资源
最近更新 更多