PHP-REACT验证加密签名

2022-08-13 00:00:00 reactjs bioinformatics cryptography php

我在Reaction Native中使用此程序包进行生物识别身份验证:https://www.npmjs.com/package/react-native-biometrics

它将一个公钥发送到我们的PHP服务器,然后发送一个加密签名,我们在其中进行了验证。

有没有什么库可以用来根据PHP中的加密签名验证公钥?


解决方案

我就是这么做的

  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&Quot; );

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-----");

相关文章