Проверка открытого ключа с помощью подписи -биометрия react native

#react-native

#react-native

Вопрос:

Я пытаюсь использовать биометрию react native, но после того, как я создал и сохранил открытый ключ (как состояние в примере кода ниже), он никогда не совпадает с подписью, сгенерированной впоследствии тем же пальцем. Как я могу проверить отпечаток пальца?

код:

 registerFingerPrint = () => {
    Biometrics.isSensorAvailable()
    .then((biometryType) => {
      if (biometryType === Biometrics.TouchID) {
        Biometrics.createKeys('Confirm fingerprint')
        .then((publicKey) => {
          console.log("create", publicKey)
          this.setState({
            create: publicKey
          })
        })
      } 
    })
  }

  fingerPrintCheck = () => {
    Biometrics.createSignature('Sign in', payload)
    .then((signature) => {
      if (this.state.create === signature){
        console.log("success");
      }else {
        console.log('failure'); //always returns failure here
      }
    })
  }

  render() {
    return (
      <View style={styles.container}>

        <TouchableHighlight onPress={()=> this.registerFingerPrint()}>
          <Text style={{ marginBottom: 10}}>
            Register
          </Text>
        </TouchableHighlight>

        <TouchableHighlight onPress={()=> this.fingerPrintCheck()}>
          <Text>
            Authenticate with Biometrics
          </Text>
        </TouchableHighlight>
      </View>
    );
  }
}
  

Ответ №1:

  let epochTimeSeconds = Math.round((new Date()).getTime() / 1000).toString()
 let payload = epochTimeSeconds  'some message' ;

  Biometrics.createSignature('Sign in Test', payload)
  .then((signature) => {
    console.log(payload " signature " signature)
    verifySignatureWithServer(signature, payload)
  })
  

вам необходимо проверить проверку на стороне сервера, используя комбинацию сгенерированной подписи и полезной нагрузки.

перейдите на этот сайт и вставьте сгенерированный открытый ключ, подпись, полезную нагрузку и проверьте их.

https://8gwifi.org/RSAFunctionality?rsasignverifyfunctions=rsasignverifyfunctionsamp;keysize=512

введите описание изображения здесь

Комментарии:

1. это именно то, что нужно, но единственное, что осталось… Если я изменю идентификатор лица в настройках iOS, он по-прежнему генерирует переданную подпись, но я ожидаю, что если идентификатор лица будет сброшен и установлен на новый (тот же человек или другой человек, но идентификатор лица новый) — проверка не должна пройти, потому что технически это другой человек!