Cara Mendekode dan Mendekripsi Data Respons di Apidog

Terkadang, data respons API dienkripsi. Perlu diubah ke teks biasa. Bisa pakai library JS Apidog atau bahasa lain (Python/JS).

Ardianto Nugroho

Ardianto Nugroho

10 July 2025

Cara Mendekode dan Mendekripsi Data Respons di Apidog

Terkadang, data respons API dienkode atau dienkripsi, dan mungkin perlu untuk mengubahnya menjadi teks biasa yang dapat dibaca. Anda dapat mencapai ini menggunakan pustaka JS bawaan di Apidog atau dengan memanggil bahasa pemrograman eksternal seperti Python atau JavaScript untuk pemrosesan.

Misalnya, data yang dienkode Base64 dapat didekode menggunakan pustaka bawaan.

Decode and Decrypt

Di bawah ini, kami akan membagikan beberapa contoh umum tentang mendekode dan mendekripsi. Jika Anda belum menginstal Apidog, cukup klik tombol untuk memulai!

button

Mendekode Data Respons

Dekode Base64

Ketika sebuah API mengembalikan data yang dienkode Base64, Anda dapat menggunakan pustaka CryptoJS yang terpasang di Apidog untuk mendekodenya. Berikut cara melakukannya:

Misalkan API mengembalikan data yang dienkode Base64 berikut:

{"data": "SGVsbG8gd29ybGQh"}

Anda dapat mendekode data Base64 ini dengan skrip seperti ini:

// Impor pustaka CryptoJS
const CryptoJS = require("crypto-js");

// String yang dienkode Base64 (diambil dari data respons)let encodedData = {"data": "SGVsbG8gd29ybGQh"
};

// Dekode data Base64let decodedData = CryptoJS.enc.Base64.parse(encodedData.data).toString(CryptoJS.enc.Utf8);

// Keluarkan hasil yang didekode
console.log(decodedData); // "Hello, world!"

Di Apidog, Anda dapat menambahkan skrip khusus di bagian "Pasca-permintaan" dengan logika di atas. Setelah mengirim permintaan, Anda dapat melihat data yang didekode di "Konsol" panel respons.

Decrypt code in console

Selain itu, Anda dapat menyimpan data yang didekode dalam variabel lingkungan untuk penggunaan di masa mendatang, seperti ini:

pm.environment.set("decodedData", decodedData);

Jika respons JSON berisi data yang dienkode Base64, Anda juga dapat menggunakan CryptoJS untuk mendekodenya dan mengatur data JSON yang didekode sebagai badan respons dengan metode pm.response.setBody(). Berikut adalah contoh untuk respons JSON yang dienkode Base64:

 a Base64 encoded JSON response

Untuk mendekodenya dan menampilkan data JSON yang didekode di Badan Respons, contoh skripnya adalah sebagai berikut:

// Impor pustaka CryptoJS
const CryptoJS = require("crypto-js");

// String yang dienkode Base64 (diambil dari data respons)let encodedData = pm.response.text();

// Dekode data Base64let decodedData = CryptoJS.enc.Base64.parse(encodedData).toString(CryptoJS.enc.Utf8);

// Parse string JSON yang didekodelet jsonData = JSON.parse(decodedData);

// Atur data JSON yang di-parse sebagai badan respons
pm.response.setBody(JSON.stringify(jsonData));
decoded JSON data

Dekode URLEncode

Ketika data respons dienkode URL, Anda dapat menggunakan metode decodeURIComponent() bawaan JavaScript untuk mendekodenya.

Misalnya, pertimbangkan sebuah API yang mengembalikan string JSON yang dienkode URL berikut:

{"name": "%E5%BC%A0%E4%B8%89","email": "qxhswppn%40gmail.com"
}

Anda dapat mendekode nilai string JSON ini seperti ini:

// Ini adalah data JSON yang dienkode URL dari responslet response = {"name": "%E5%BC%A0%E4%B8%89","email": "qxhswppn%40gmail.com"
};

// Dekode menggunakan decodeURIComponentlet decodedName = decodeURIComponent(response.name);
let decodedEmail = decodeURIComponent(response.email);
console.log(decodedName);  // "Jason"
console.log(decodedEmail);  // "qxhswppn@gmail.com"
Decode by decodeURIComponent()

Mendekripsi Data Respons

Dekripsi AES

Untuk mendekripsi ciphertext yang dienkripsi AES, Anda perlu menyediakan kunci atau vektor inisialisasi (IV) yang sesuai. AES menggunakan enkripsi simetris, yang berarti kunci yang sama digunakan untuk enkripsi dan dekripsi. Jika Anda tidak memiliki kunci atau IV yang benar, Anda tidak dapat mendekripsi ciphertext.

Dengan asumsi Anda memiliki ciphertext yang dienkripsi AES dalam mode ECB, Anda dapat menggunakan pustaka CryptoJS untuk mendekripsinya di Apidog seperti ini:

// Impor pustaka CryptoJSconst CryptoJS = require('crypto-js');

// Ciphertext yang dienkripsi AES yang dienkode Base64 (diambil dari data respons)const ciphertext = "Gig+YJFu4fLrrexzam/vblRV3hoT25hPZn0HoNoosHQ=";

// Kunci untuk dekripsi (pastikan ukurannya 16/24/32 byte; biasanya dibaca dari variabel lingkungan)const key = CryptoJS.enc.Utf8.parse('1234567891234567');

// Dekripsi AESconst decryptedBytes = CryptoJS.AES.decrypt(ciphertext, key, {
    mode: CryptoJS.mode.ECB, // Mode dekripsi
    padding: CryptoJS.pad.Pkcs7 // Metode padding
});

// Konversi array byte yang didekripsi ke string UTF-8const originalText = decryptedBytes.toString(CryptoJS.enc.Utf8);

// Keluarkan teks yang didekripsi
console.log(originalText); // "Hello,Apidog!"

Anda dapat melihat data yang didekripsi di konsol respons.

AES Decryption

Dekripsi RSA

Untuk mendekripsi ciphertext yang dienkripsi RSA, Anda perlu menyediakan kunci privat RSA yang sesuai, karena RSA adalah algoritma enkripsi asimetris. Pasangan kunci terdiri dari kunci publik dan kunci privat, dan kunci privat sangat penting untuk dekripsi.

Apidog menyertakan pustaka jsrsasign (Perbarui versi terbaru), yang dapat Anda gunakan untuk mendekripsi ciphertext RSA. Berikut adalah contohnya:

// Impor pustaka jsrsasign
const jsrsasign = require('jsrsasign');

// Definisikan kunci privat (biasanya dibaca dari variabel lingkungan)
const privateKeyPEM = `
-----BEGIN PRIVATE KEY-----
Private key...
-----END PRIVATE KEY-----
`;

// Definisikan ciphertext (biasanya diekstrak dari data respons)
const ciphertext = '';

// Dekripsi
const prvKeyObj = jsrsasign.KEYUTIL.getKey(privateKeyPEM);
const decrypted = jsrsasign.KJUR.crypto.Cipher.decrypt(ciphertext, prvKeyObj);
console.log(decrypted);
RSA Decryption

Referensi contoh lengkap untuk enkripsi dan dekripsi RSA sederhana (perhatikan bahwa versi jsrsasign adalah 10.3.0, dan sintaks versi lain mungkin tidak kompatibel), yang dapat Anda jalankan di lingkungan Node.js dan melakukan operasi enkripsi atau dekripsi di Apidog sesuai kebutuhan:

const rsa = require('jsrsasign');

// Hasilkan pasangan kunci RSA
const keypair = rsa.KEYUTIL.generateKeypair("RSA", 2048);
const publicKey = rsa.KEYUTIL.getPEM(keypair.pubKeyObj);
const privateKey = rsa.KEYUTIL.getPEM(keypair.prvKeyObj, "PKCS8PRV");

console.log("Public Key:", publicKey);
console.log("Private Key:", privateKey);

// Enkripsi dengan kunci publik
const plaintext = "Hello, Apidog!";
const pubKeyObj = rsa.KEYUTIL.getKey(publicKey);

const encryptedHex = rsa.KJUR.crypto.Cipher.encrypt(plaintext, pubKeyObj);
console.log("Encrypted Key:", encryptedHex);

// Dekripsi dengan kunci privat
const prvKeyObj = rsa.KEYUTIL.getKey(privateKey);

const decrypted = rsa.KJUR.crypto.Cipher.decrypt(encryptedHex, prvKeyObj);
console.log("Decrypted Plaintext:", decrypted);
RSA encryption and decryption in JS

Menggunakan Program Eksternal untuk Dekripsi

Selain menggunakan pustaka JS bawaan Apidog untuk dekripsi, Anda juga dapat memanggil "program eksternal" untuk melakukan dekripsi. Untuk informasi lebih lanjut tentang menggunakan program eksternal, Anda dapat memeriksa pusat bantuan Apidog untuk instruksi terperinci.

💡
Program eksternal disimpan di Direktori Program Eksternal dan dapat menyertakan file kode seperti .jar untuk program Java, atau .py, .php, .js untuk skrip dalam bahasa lain. Anda dapat mengakses direktori ini melalui "Pengaturan -> Program Eksternal" di sudut kanan atas antarmuka Apidog.
External Programs

Contoh: Dekripsi RSA dengan Node.js

Jika Anda ingin melakukan dekripsi RSA menggunakan pustaka node-forge di Node.js, Anda dapat membuat file .js di Direktori Program Eksternal untuk mengimplementasikan logika dekripsi. Berikut cara melakukannya:

  1. Buat Skrip Dekripsi Pertama, buat file .js dan implementasikan logika dekripsi. Karena Anda akan menggunakan pustaka node-forge, instal di direktori tersebut menggunakan npm atau yarn. Berikut tampilan skrip Anda:
// Impor pustaka node-forge
const forge = require('node-forge');
// Dapatkan argumen baris perintah
const args = process.argv.slice(2);
// Kunci privat Anda (format PEM)
const privateKeyPem = `
-----BEGIN RSA PRIVATE KEY-----
private key……
-----END RSA PRIVATE KEY-----`;
// Ciphertext terenkripsi dari baris perintah
const encrypted = args[0];
// Konversi kunci privat format PEM ke objek kunci privat forge
const privateKey = forge.pki.privateKeyFromPem(privateKeyPem);
// Konversi data terenkripsi yang dienkode Base64 ke array byte
const encryptedBytes = forge.util.decode64(encrypted);
// Dekripsi data
const decrypted = privateKey.decrypt(encryptedBytes, 'RSA-OAEP');
// Output console.log() akan ditangkap oleh Apidog
console.log(decrypted);
  1. Panggil Program Eksternal di Apidog Setelah menulis skrip dekripsi, Anda dapat menggunakan metode pm.executeAsync() di bagian "Pasca-permintaan" Apidog untuk memanggil program eksternal ini. Pastikan bahwa skrip dekripsi Anda ditempatkan di direktori program eksternal yang benar dan bahwa jalur yang Anda referensikan relatif terhadap direktori tersebut. Berikut cara memanggilnya:
// Ciphertext terenkripsi (biasanya diperoleh dari data respons)
const encrypted = 'iDqUyR3BpaTqpzq…………';
// Jalur program eksternal, meneruskan parameter
const result = await pm.executeAsync('./nodejs-rsa/rsa.js', [`${encrypted}`]);
console.log('Result:', result);

Ketika Anda mengirim permintaan di Apidog, itu akan secara otomatis meneruskan ciphertext ke program eksternal yang Anda definisikan, melakukan dekripsi, dan menangkap output hasil melalui console.log(), yang pada akhirnya mengembalikan plaintext yang didekripsi.

Dekripsi semacam ini tidak terbatas pada Node.js, bahasa pemrograman lain seperti Java, PHP, Python, Go, dll. dapat melakukan operasi dan panggilan serupa.

Kesimpulan

Menggunakan metode yang diuraikan dalam artikel ini, Anda dapat secara efektif mendekode dan mendekripsi data respons di Apidog, mengubahnya menjadi teks biasa yang dapat dibaca. Coba Apidog sekarang!

button

Explore more

Cara Menggunakan Lovable AI (Alternatif Cursor untuk Pengembang Web)

Cara Menggunakan Lovable AI (Alternatif Cursor untuk Pengembang Web)

Pelajari cara buat web apa pun dgn Lovable. Panduan lengkap, fitur inovatif, & integrasi Apidog (API gratis).

15 April 2025

Cara Menambahkan Kunci API Kustom ke Cursor: Panduan Komprehensif

Cara Menambahkan Kunci API Kustom ke Cursor: Panduan Komprehensif

Tutorial ini memandu Anda menyiapkan & mengelola API key khusus di Cursor: OpenAI, Anthropic, Google, & Azure.

11 April 2025

Cara Menggunakan NVIDIA Llama Nemotron API untuk Agen AI Tingkat Lanjut

Cara Menggunakan NVIDIA Llama Nemotron API untuk Agen AI Tingkat Lanjut

Pelajari API NVIDIA Llama Nemotron utk buat agen AI canggih.

11 April 2025

Mengembangkan API dengan Apidog

Apidog adalah alat pengembangan API yang membantu Anda mengembangkan API dengan lebih mudah dan efisien.