Masking Password Dalam C++

berhubung banyak teman yang meminta saya untuk sharing cara masking password dalam C++,
akhirnya saya posting lagi,,,



untuk pengguna internet pasti sudah sering berhadapan dengan form input password, jika anda mengetikan sembarang karakter pada form tersebut pasti langsung berubah menjadi simbol asterik (*), namun bagaimana caranya untuk mmbuat form seperti itu pada pemrograman C++, nah kali ini saya akan membagi caranya,

Anda tau fungsi getch dalam C++ kan? nah inti dari masking ini ada pada fungsi tersebut. Bagi yang belum tahu fungsi getch adalah fungsi untuk membaca input pada keyboard, getch sendiri merupakan kepanjangan dari get character.

Nah, jadi intinya kita mengambil input dari keyboard dengan fungsi getch, lalu memberikan output berupa simbol asterix (*).

sebenarnya saya sudah ada contoh programnya, lihatlah pada gambar di bawah ini:


saya menginputkan kata bintang pada program tersebut, dan keluarnya simbol asterik,
bagaimana? anda penasaran dengan scriptnya?
tenang saja, saya kan baik hati :)
jadi scriptnya saya berikan nih:

#include <stdio>
#include <conio>

main()
{
    char password[32];
   printf("Masukan Password\t= ");
   for (int i=0;i<32;i++)
   {
       password[i]=getch();
      if (password[i]=='\r')
      {
          password[i]=NULL;
         break;
      }
      if (password[i]=='\b')
      {
         if(i!=0)printf("\b \b");
          password[i]=NULL;
         password[i-1]=NULL;
         i-=2;
         if(i<-1)i=-1;
         continue;
      }
      printf("*");
   }
   printf("\nPasswordnya adalah\t= %s",password);
   printf("\nBy Bintang Catur Putra");
   getch();
}

untuk input passwordnya saya beri warna merah tuh,,,

nah berikut untuk penjelasan scriptnya:

      if (password[i]=='\r')
      {
          password[i]=NULL;
         break;
      }

artin script diatas jika yang ditekan enter, maka karakter yang disimpan pada password indeks ke i akan dijadikan NULL (tidak berisi data) dan perulanga akan berhenti

      if (password[i]=='\b')
      {
         if(i!=0)printf("\b \b");
          password[i]=NULL;
         password[i-1]=NULL;
         i-=2;
         if(i<-1)i=-1;
         continue;
      }

arti script diatas jika yang ditekan tombol backspace maka karakter yang disimpan pada password indeks ke i dan i-1 akan dijadikan NULL dan langsung melanjutkan perulangan (statement dibawah statement continue tidak akan dieksekusi)

oke, kali ini cukup segitu saja ya,,,
anda bisa mengembangkan script tersebut, misalnya jika yang ditekan tombol esc atau tombol panah maka statementnya berbeda,,

akhir kata saya mohon maaf jika ada kesalahan,,,
terima kasih...


oh iya,,
untuk source code nya bisa di download pada link di bawah ini
DOWNLOAD

9 comments:

  1. terimakasih komentarnya gan,,,
    :)

    ReplyDelete
  2. trims ya masbro!!

    ReplyDelete
  3. sama-sama bro,,,
    makasih dah mampir,,,
    =)

    ReplyDelete
  4. thanks gan......!!
    kebetulan lg ada tugas kayak ginian,.,.

    ReplyDelete
  5. thanks dad
    tp knapa statement dibawah 'continue' g bs dieksekusi

    byar bisa dieksekusi apa yg hrs dihilangkan dad...????

    ReplyDelete
  6. mau tanya gan . cara password yg bintang itu . ketika di tekan backspace menghapus . tidak ikut nambah jadi bintang jg terima kasih

    ReplyDelete
  7. Menangkan Jutaan Rupiah dan Dapatkan Jackpot Hingga Puluhan Juta Dengan Bermain di www(.)SmsQQ(.)com

    Kelebihan dari Agen Judi Online SmsQQ :
    -Situs Aman dan Terpercaya.
    - Minimal Deposit Hanya Rp.10.000
    - Proses Setor Dana & Tarik Dana Akan Diproses Dengan Cepat (Jika Tidak Ada Gangguan).
    - Bonus Turnover 0.3%-0.5% (Disetiap Harinya)
    - Bonus Refferal 20% (Seumur Hidup)
    -Pelayanan Ramah dan Sopan.Customer Service Online 24 Jam.
    - 4 Bank Lokal Tersedia : BCA-MANDIRI-BNI-BRI

    8 Permainan Dalam 1 ID :
    Poker - BandarQ - DominoQQ - Capsa Susun - AduQ - Sakong - Bandar Poker - Bandar66

    Info Lebih Lanjut Hubungi Kami di :
    BBM: 2AD05265
    WA: +855968010699
    Skype: smsqqcom@gmail.com

    ReplyDelete