Categories
Dokumentasi

Bagaimana Cara Mereset Password Web Berbasis WordPress

WordPress merupakan Content Management System yang banyak digunakan karena dapat dibangun dengan cepat dan dapat disesuaikan dengan sangat flesksibel dengan banyak tema dan plugin. Namun, ternyata dengan pertimbangan tertentu WordPress masih menggunakan hash general purpose, setidaknya sampai artikel ini ditulis. Lantas, bagaimana cara ber-tobat dan memperbaiki kesalahan?

Apabila karena satu dan lain hal Admin tidak dapat login ke WordPress dan tidak dapat melakukan lupa password, maka Admin dapat mengganti password secara langsung di basis data.

— Bagaimana Cara Mereset Password Web Berbasis Wordpress
https://pdsi.unisayogya.ac.id/bagaimana-cara-mereset-password-web-berbasis-wordpress/ 2021-03-22 11:22:33

Daftar Isi

Generate Password Baru

Apabila password sudah terlanjur diganti oleh orang lain atau karena alasan lainnya sedemikian sehingga password tidak dapat digunakan untuk login ke WordPress dan tidak dapat melakukan lupa password, maka Admin dapat menyalin kode di bawah ini ke dalam berkas php di localhost atau dapat menggunakan layanan php online:

<?php  
  function encode64($input, $count)
  {
    $itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
    $output = '';
    $i = 0;
    do {
      $value = ord($input[$i++]);
      $output .= $itoa64[$value & 0x3f];
      if ($i < $count)
        $value |= ord($input[$i]) << 8;
      $output .= $itoa64[($value >> 6) & 0x3f];
      if ($i++ >= $count)
        break;
      if ($i < $count)
        $value |= ord($input[$i]) << 16;
      $output .= $itoa64[($value >> 12) & 0x3f];
      if ($i++ >= $count)
        break;
      $output .= $itoa64[($value >> 18) & 0x3f];
    } while ($i < $count);

    return $output;
  }

  function crypt_private($password, $setting)
  {
    $itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
    $output = '*0';
    if (substr($setting, 0, 2) == $output)
      $output = '*1';

    $id = substr($setting, 0, 3);
    
    # We use "$P$", phpBB3 uses "$H$" for the same thing
    if ($id != '$P$' && $id != '$H$')
      return $output;

    $count_log2 = strpos($itoa64, $setting[3]);
    if ($count_log2 < 7 || $count_log2 > 30)
      return $output;

    $count = 1 << $count_log2;

    $salt = substr($setting, 4, 8);
    if (strlen($salt) != 8)
      return $output;

    # We're kind of forced to use MD5 here since it's the only
    # cryptographic primitive available in all versions of PHP
    # currently in use.  To implement our own low-level crypto
    # in PHP would result in much worse performance and
    # consequently in lower iteration counts and hashes that are
    # quicker to crack (by non-PHP code).
    if (PHP_VERSION >= '5') {
      $hash = md5($salt . $password, TRUE);
      do {
        $hash = md5($hash . $password, TRUE);
      } while (--$count);
    } else {
      $hash = pack('H*', md5($salt . $password));
      do {
        $hash = pack('H*', md5($hash . $password));
      } while (--$count);
    }

    $output = substr($setting, 0, 12);
    $output .= encode64($hash, 16);

    return $output;
  }

  function generate_password($password)
  {
    $itoa64   = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
    $storedhash = '$P$'.$itoa64[(rand() % (strlen($itoa64)-2))].substr(uniqid(), 0, 8);
    $hash     = crypt_private($password, $storedhash);
    echo $hash;
  }

//silakan diganti dengan password Anda
generate_password("password yang anda inginkan, sebaiknya ada variasi huruf besar, huruf kecil, simbol dan angka, lebih dari 8 karakter");

Hasil yang muncul di layar dapat disalin ke tabel user di database.

Update Hash Password Worpress

Anda dapat memasang plugin yang dibuat oleh Roots. Namun, Anda dapat juga memasang plugin lainnya. Plugin dari Roots ini merupakan pustaka Composer sehingga dapat dipasang dengan berbagai jalan:

|-Composer Autoloaded

composer require roots/wp-password-bcrypt

berkas wp-password-bcrypt.php akan secara otomatis digunakan melalui Composer dan tidak akan muncul di bagian plugin.

|-Secara Manual

Jika Anda tidak menggunakan Composer, anda dapat menyalin secara manual berkas wp-password-bcrypt.php yang diunduh dari https://github.com/roots/wp-password-bcrypt/blob/master/wp-password-bcrypt.php ke dalam folder mu-plugins.

Tidak direkomendasikan memasang berkas ini sebagai plugin biasa (non-mu) karena akan membuat plugin ini mudah di-non-aktifkan atau dihapus.

Demikian, semoga bermanfaat. [bst]

Bahan bacaan:

By basit

Biro Pengembangan Teknologi Dan Sistem Informasi

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.