Проверка подписи Ethereum (Web3) в PHP - PullRequest
0 голосов
/ 23 октября 2018

Как я могу проверить подписанную Ethereum базу с PHP?

Сообщение подписывается с помощью функции web3.personal.sign в Web3.js, и подпись затем отправляется на сервер.Как я могу проверить это с помощью PHP?

Есть ли какие-то предварительно собранные пакеты (на Packagist), или я должен сделать это с нуля?Можно ли сделать это без какого-либо подключения к узлам RPC или цепочке (вне цепочки)?

Я уже нашел некоторые вопросы по этому поводу в Ethereum StackExchange, но это очень сложно инемного устаревший, поэтому я хочу знать, есть ли более новое и лучшее решение.

Я также нашел какой-то пакет на GitHub , но я не знаю, будет ли он работать с web3.personal.sign.

Некоторые ссылки, которые я нашел:

1 Ответ

0 голосов
/ 18 ноября 2018

Проверка подписанного сообщения возможна с пакетом php-ecrecover .

Используя этот пакет, вы можете получить исходный адрес сообщения, а затем проверить, совпадает ли он с ожидаемым адресом.

JS Знак:

let message = 'Hello World!'
let address = web3.eth.coinbase

web3.personal.sign(web3.fromUtf8(message), address, console.log);

Проверка PHP:

$address = '0xe12Aa5FB5659bb0DB3f488e29701fE303bcBAf65';
$message = 'Hello World!';
$signed = '0x2cb6b41177a5e6690ebbc61f182758fcf8f54403edcb848fc1089a772227d55163804b4dc7fcf72d15f0d977d741f6dd6bcc4fc4c74916378afcad06be77b2101b';

if ($address == personal_ecRecover($message, $signed)) {
    echo 'Message verified';
} else {
    echo 'Message not verified';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...