0

入力可能なフォームのデジタル署名を作成する必要があります。つまり、ユーザーがフォームに入力するときに、ドキュメントに署名する必要があります。彼自身の秘密鍵を使用すると、サーバーは公開鍵を使用して彼の秘密鍵をチェックします。私はそれを研究しましたが、本当の答えを見つけることができませんでした。私は php-openssl を使用し、フォームは入力可能になります。このコードでキー ペアを作成できます。

// generate 2048-bit RSA key    
$pkGenerate = openssl_pkey_new(array(

    'private_key_bits' => 2048,

    'private_key_type' => OPENSSL_KEYTYPE_RSA));

// get the private key    
openssl_pkey_export($pkGenerate,$pkGeneratePrivate);

// get the public key    
$pkGenerateDetails = openssl_pkey_get_details($pkGenerate);

$pkGeneratePublic = $pkGenerateDetails['key'];

// free resources    
openssl_pkey_free($pkGenerate);

// fetch/import public key from PEM formatted string    
// remember $pkGeneratePrivate now is PEM formatted...    
// this is an alternative method from the public retrieval in previous

$pkImport = openssl_pkey_get_private($pkGeneratePrivate); // import

$pkImportDetails = openssl_pkey_get_details($pkImport); // same as getting the public key in previous

$pkImportPublic = $pkImportDetails['key'];

openssl_pkey_free($pkImport); // clean up

echo "\n".$pkGeneratePrivate

    ."\n".$pkGeneratePublic

    ."\n".$pkImportPublic

    ."\n".'Public keys are '.
(strcmp($pkGeneratePublic,$pkImportPublic)?'different':'identical').'.';
4

0 に答える 0