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

8 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