Langsung ke konten utama

True Random Dengan Apps Script dan Random.org

Random.org menyediakan layanan pembangkitan random murni [true random] yang dapat kita manfaatkan dalam membangkitkan keunikan yang murni untuk identitas, token, ataupun password.

TRUE RANDOM vs PSEUDO RANDOM

Ketika terlibat dengan karakter acak, anda akan menemui dua sifat random: True Random dan Pseudo Random. True Random terjamin keunikannya karena tidak bisa diprediksi.

Pseudo-random dibangkitkan dengan algoritma berbasis komputer. Dalam beberapa eksperimen statistik menyimpulkan Pseudo-random pada akhirnya masih punya peluang akan memunculkan kembali angka random yang identik di waktu dan kondisi yang berbeda sehingga seringkali disebut random tidak murni atau semu [pseudo].

Sifat semu dari pseudo-random inilah yang oleh banyak pakar IT tidak direkomendasikan untuk digunakan dalam penanganan keamanan di dunia komputer seperti password SiLiKiDi

Banyak pakar IT yang melakukan riset-riset membangkitkan true random dengan komputer termasuk Random.org yang menjadikan true random sebagai bidang bisnis menjanjikan. Anda dapat menyimak hasil riset komputasi true random pada salah satu jurnal ilmiah ini dan riset Intel-WolfSSL.

TRUE RANDOM DENGAN RANDOM.ORG

Dalam eksperimen ini kita akan mencoba menggunakan hasil pembangkitan true random secara online dari Random.org untuk kita tarik dengan Apps Script. Dengan demikian kita tidak perlu lagi hard-coded super rumit hanya untuk menghasilkan algoritma komputasi random murni.

Random.org adalah situs yang mendedikasikan pada true random sejak 1998. Fitur layanannya freemium dapat diakses publik dengan batasan tertentu untuk versi gratis. SiLiKiDi

MEMILIH FITUR RANDOM

Random.org banyak menyediakan layanan randomisasi yang dalam eksperimen kali ini kita hanya mencoba menggunakan Random Strings Generator yaitu pembangkitan sebuah true random string yang terdiri dari 20 karakter.

Silahkan akses situs random.org di alamat https://random.org lalu pilih menu List & More dan pilih Strings:

Pada tampilan berikutnya:

  • Sebelum penyetelan apapun, pertama kali langsung klik tombol Switch to Advanced Mode untuk menampilkan pengaturan lebih banyak.
  • Generate random strings ketik 1 karena kita hanya memerlukan satu random saja.
  • Each strings should be characters long ketik 20 untuk menghasilkan panjang random 20 karakter.
  • Which characters are allowed centang semuanya untuk mengkombinasi alfanumerik berikut kapitalisasinya.
  • Do you want each string to be unique? pilih Each strings should be unique untuk memastikan keunikan murni tidak ada peluang duplikasi.

Pengaturan selanjutnya:

  • Part 2: Choose Output Format pilih As a bare-bones text document (type text/plain) agar hasilnya ditampilkan dalam bentuk teks bukan html yang rumit untuk diolah dikemudian.
  • Part 3: Choose Randomization pilih Generate your own personal randomization right now.
  • Klik tombol Get Strings untuk melihat hasilnya.

MENDAPATKAN URL API RANDOM.ORG

URL API sangat diperlukan agar pembangkitan bisa dilakukan secara terprogram di back-end tanpa perlu interaksi manual dengan membuka situsnya setiap kali kita membutuhkan true random.

Tampak pada hasil pembangkitan berupa tampilan web dalam format plain-text dengan alamat URL yang disertai query parameter GET. Salin alamat URL tersebut untuk kita gunakan nanti dalam Apps Script.

PENGOLAHAN DI APPS SCRIPT

Selanjutnya untuk membangkitkan true random di Apps Script yang disuplai dari Random.org cukup dengan memanfaatkan metode UrlFetchApp.fetch().

Contoh script berikut menguji coba 3x pemanggilan untuk melihat keunikan pembangkitan true random langsung dari Random.org:


const generateTrueRandom = () => {
  
  let randomURL = 'https://www.random.org/strings/?num=1&len=20&digits=on&upperalpha=on&loweralpha=on&unique=on&format=plain&rnd=new';
  
  let response = UrlFetchApp.fetch( randomURL );
  Logger.log( response.getContentText() );
  
  Logger.log( UrlFetchApp.fetch( randomURL ).getContentText() );
  Logger.log( UrlFetchApp.fetch( randomURL ).getContentText() );
  
}

PEMANFAATAN TRUE RANDOM

Selanjutnya anda dapat memanfaatkan pembangkitan online true random untuk membuat user ID, token akses, dan variabel lain yang membutuhkan keunikan random murni:


const genTrueRandom = () => {
  let randomURL = 'https://www.random.org/strings/?num=1&len=20&digits=on&upperalpha=on&loweralpha=on&unique=on&format=plain&rnd=new';
  let response = UrlFetchApp.fetch( randomURL );
  return response.getContentText();
}

function createID() {

  const userID = genTrueRandom();
  const tokenID = genTrueRandom().trim() + genTrueRandom().trim() + genTrueRandom().trim() + genTrueRandom().trim().substring(0, 4);

  Logger.log( 'userID anda : ' + userID );
  Logger.log( 'tokenID anda : ' + tokenID );
  Logger.log( 'Panjang token : ' + tokenID.length );

}

FINAL SCRIPT

Final Script dari eksperimen ini merupakan bagian dari artikel Random Seed, Secret Key, Token Google, dan oAuth Dengan Apps Script.

Dapatkan skrip semua materi di repository

Dukung donasi agar tutorial ini tetap operasional:
Trakteer Saya SiLiKiDi

Komentar

Postingan populer dari blog ini

Kirim Pesan Ke Telegram Dengan Apps Script

Dengan koneksi webhook anda bisa mulai ujicoba mengirim pesan pertama ke Telegram dari Google Apps Script.

Input User Dengan ForceReply Di Telegram

Metode ForceReply memungkinkan Bot memaksa user untuk memberikan input sebelum melanjutkan proses, dengan demikian anda dapat menggelar Step-by-Step formulir di Telegram.