Cara Membuat Signature Public Key dan Private Key Menggunakan SHA256WithRSA dan PKCS di PHP

Saya akan berbagi artikel bagaimana cara membuat signature publick key dan private key dengan menggunakan PHP, yang dimana ini adalah salah satu komponen penting dalam transformasi digital antar perusahaan. Didalam transaksi pembayaran ini adalah hal yang sangat penting contohnya Pembayaran yang menggunakan pihak ke 3, contohnya disini adalah pembayaran menggunakan VA BCA. Merujuk pada dokumentasinya yang ada bisa di klick link menuju dokumentasinya  salah satu faktornya yaitu signature public key yang dimana harus kita generate signature public key yang nantinya akan kita serahkan public key kepada pihak BCA dan untuk private Key kita Keep, untuk kita jadikan verifikasi ketika kita akan melakukan HIT kepada Pihak BCA. Maka dari itu sekelas BCA saja menggunakan hal tersebut karena aware terhadap pembobolan data, apalagi ini adalah pembayaran. Di PHP sudah tersedia dan saya sudah melakukan test generate, berjalan dengan normal, namun disini saya menggunakan Framework laravel, tapi mungkin tidak jauh beda walaupun pakai PHP Native. Ini adalah contoh fungsinya.

<?php

public function generateKey()
    {
        $data = 'My Data';

        //create new private and public key
        $new_key_pair = openssl_pkey_new(array(
            "private_key_bits" => 2048,
            "private_key_type" => OPENSSL_KEYTYPE_RSA,
        ));
        openssl_pkey_export($new_key_pair, $private_key_pem);

        $details = openssl_pkey_get_details($new_key_pair);
        $public_key_pem = $details['key'];

        //create signature
        openssl_sign($data, $signature, $private_key_pem, OPENSSL_ALGO_SHA256);

        //save for later
        file_put_contents('private_key.pem', $private_key_pem);
        file_put_contents('public_key.pem', $public_key_pem);
        file_put_contents('signature.dat', $signature);

        //verify signature
        $r = openssl_verify($data, $signature, $public_key_pem, "sha256WithRSAEncryption");
        var_dump($r);
    }

Dengan codingan diatas kalo kita execute maka akan menghasilkan output file seperti dibawah ini :

Demikianlah artikelnya, semoga bermanfaat.

Related Articles

Comments