Menandatangani Permintaan Menggunakan RSA

Untuk keberhasilan penyelesaian, ikuti langkah-langkah dan contoh di bawah ini.

Cara menghitung tanda tangan dengan RSA

1

Siapkan muatan (payload)

Konversikan data yang akan ditandatangani (payload tanda tangan) ke dalam format ASCII. Payload ini biasanya mencakup semua parameter atau bidang permintaan yang relevan.

2

Hasilkan tanda tangan biner

Gunakan algoritma penandatanganan RSASSA-PKCS1-v1_5 dengan fungsi hash SHA-256 dan kunci privat RSA Anda untuk membuat tanda tangan biner.

3

Enkode tanda tangan

Konversikan output biner dari tanda tangan ke string Base64 (RFC 2045).

Cara mengirim permintaan API yang ditandatangani

Setelah tanda tangan dibuat, Anda dapat menyertakannya dalam permintaan API Anda:

Tambahkan Tanda Tangan ke header permintaan

Gunakan tanda tangan berenkode Base64 yang dibuat pada langkah sebelumnya.

Sertakan Kunci API Anda

Tambahkan Kunci API Quentrade Anda di header bersamaan dengan Tanda Tangan.

Kirim permintaan

Kirimkan permintaan ke endpoint yang DITANDATANGANI (SIGNED). Pastikan payload, header, dan metode cocok dengan data yang digunakan untuk menghitung tanda tangan guna menghindari ketidakcocokan.

Harap diingat, tanda tangan bersifat peka huruf besar/kecil (case sensitive).

Contoh & Generator Interaktif

Berikut adalah contoh nyata penandatanganan permintaan menggunakan RSA dengan endpoint resmi Quentrade API, beserta tool kalkulator tanda tangan interaktif.

Berikut ini adalah panduan langkah demi langkah untuk menghasilkan signature RSA yang valid dan mengirim payload bertanda tangan menggunakan OpenSSL Linux, cURL, atau tool interaktif di bawah ini.

api_key.txt
vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A
private_key.pem
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAspMfrKDl78gMWr4EO9Nr9LoZirPvkN93oGDO1LPnvDIwkmTVQCXv9EAgzz4E36B9RuXIukMydrwCqtPOaweSAFgj9MZ0PFwIWsHk4x7flUJU3YI3Ub2uc+jl2Mbtxfoei5cbY6iAwsp+HyeKrdonVHtEd9mFutd468+vO7+rx/M80oncfduNVf/GRR2McTOO4Ptm4s68clY0dyXMRLidQjydPPYNjuzs47DVxNK+tXGS7QSHLuC7VO/YBXWqZNzvii1KeCEIePJfz06ywZFTdNxZt2USoudAgUMBvJg0cLKqQJFxp62Pez6aWC0lV9yDPHpUwp+RfrNiP213vKObnQIDAQABAoIBAQCf//KBWiirjzKCm35vnB8+RwBbpp0f0Rn+OL8ZFZispsueX3oy38r/rfW3unnjZIja3UfcnBi7CfnZ1a09eKr4ZADTcHz1GADkUJYkaaUqtyQS1Hl8Y9fLQwGuGY8xs8lqiRmhUXkNDyGyCFvZKX3T1B6kw+FuZ2GQ56S6hCIGJApRCaIfMsBMlUPogJIh+oV5+13ft5EDvTFoIDAb9YZQk+sp0sc38g3MIhqVAl7lqqpowFF5FnS4cRTcSIC1Wc5+R73LDRtNghQc1kAFdM8aiw/dii2huGE+bRz3bjlCW6SOlsSPKOgvqFxVoJ/qjqkfytm1Platx4YszAqr4EQBAoGBAOX3FUgUnoqybKOoa6ouSgFXmcADB6jLiXcPOxEg6JadBKSsI0FxYmqgRK7ddKVaiDmAgdL7RJQ4zyCyeFuGomr796ilsswORDucjNBNVKoxmea58ww+c5pOXccDuiFR32/5hz0pwcmiIYg9tPVpFUMgiPBpjjhNPSajOSE1HJTlAoGBAMbKoJTKhmT+/73BpTY8KSMAYSEbHX/uchsiFd+RlQDmHZ9KGd914UI8hGW4yOBmcvmiu6Yjz5JT6ARqKNkhorbz9FvYhYGjDbLIIHxaDs/6vXOCs/ba3oAnHTFa7cQ5qMleoyndAf4aVPY105yP2SlOW7oBoUUwxaqSOEgOPvhZAoGAMJBNXjt8f63OY4Fdu0KrPj1Rqsr5Axx4mzwMLUHV3HisUlpH17oqHnpaBtOdno3P1tTclcGaafLVSwJliG6WPiGX23WinJUms7ALzLGH/6kZ5y+9tAg8QYnrI+wVkpPHq832UWRQGFS04CCn5muaoeJtCNhBwIIPN+mgVvLwZkECgYEAnWlgJNIF/71oVyMapsqWrG+leeiVwHLZCiFAfssx2Qde135+5FLcr21qTX44GnElhAVXX+SlfjJQ3AYQGHeo+ARPL9dRSGkL9NDB4JYTep8LG4eY59VCMOpIFIfzFNmvjN0SiJjH9iV1t4zB5wyFIk85FR4rTLWlID8ur+gP9ukCgYEA3Z8WmO3NKk+eQMo2HcpJhgKl6LcliAFW1pa7Fbnu+lyNKhWQYzQPltp+HZluqeMrmtiiB33J9fYLIC4oXgEi/1UfPc0mpPRERYC8s5A4GKTdQFFoMn5vwc4dnTdfBxKBacAoUWUZcRuipcgkkUQAQZxqUnGkGZQHf8UFjEzHD5k=
-----END RSA PRIVATE KEY-----

Parameter Permintaan

Parameter:mode|Nilai:paper
query_string.txt
query
path: /api/v1/user/mode
queryString: mode=paper
payload: /api/v1/user/mode?mode=paper

Menghasilkan Tanda Tangan

generate_signature.sh
$openssl dgst -sha256 -sign private.pem

Setelah menjalankan perintah tersebut, Anda akan mendapatkan tanda tangan:

signature_base64.txt
W+a26NiV6KkWP5zWoaDU9nSHmfObAtbbaq+xPIKwiKIz81Mlgrek/Z51qsAWNXEMCpIGW40IYDo7BTq4FSvOVSxdfrFK3lRqBveoXW+/50QOd3p+fDe5Ku7Z0U6MvXSUeFOguMBxP7er1SLGOb5RLYI/2GPMI5txLAoSsTLjGkWOc7S3ZhUpxEfxSCp8wCFp6E99biIX2MhIT1/AAl290ID76Wr1dj9Y3QxIl6KtQlbpEqhvWBaadYaYyZR5YjHAn5NWAE2cvxLkH+SQE1khzAdB6T9ZJ9sgMtY1bOzTTV/Cj9W0SABCYr4In12+uFY0lB+ANvgi8hLr2NCl775Wdw==

Melakukan Panggilan API

execute_request.sh
cURL
curl -X POST 'https://quentrade.com/api/v1/user/mode?mode=paper' \
  -H 'APIKEY: vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A' \
  -H 'Signature: W+a26NiV6KkWP5zWoaDU9nSHmfObAtbbaq+xPIKwiKIz81Mlgrek/Z51qsAWNXEMCpIGW40IYDo7BTq4FSvOVSxdfrFK3lRqBveoXW+/50QOd3p+fDe5Ku7Z0U6MvXSUeFOguMBxP7er1SLGOb5RLYI/2GPMI5txLAoSsTLjGkWOc7S3ZhUpxEfxSCp8wCFp6E99biIX2MhIT1/AAl290ID76Wr1dj9Y3QxIl6KtQlbpEqhvWBaadYaYyZR5YjHAn5NWAE2cvxLkH+SQE1khzAdB6T9ZJ9sgMtY1bOzTTV/Cj9W0SABCYr4In12+uFY0lB+ANvgi8hLr2NCl775Wdw=='