You are on page 1of 7

Good hash functions produce fingerprints that are similar to those that

would be obtained if the fingerprint sequence was uniformly chosen at


random. In particular, for any possible random result (a sequence of 64
hexadecimal characters), it is impossible to find a data file F with this
fingerprint in a reasonable amount of time.
There have been several generations of hash functions. The SHA0 and
SHA1 generations are obsolete and are not recommended. The SHA2
generation, including SHA256, is considered secure. 
The transformation is achieved by using algorithms known as
cryptographic hash functions. These are meticulously developed processes
that transform a data file, F, however long it may be, into a sequence, h(F),
called a fingerprint of F. For example, the hash function SHA256
transforms the phrase “Nice weather” into:
do not store plaintext lists of usernames and passwords on the computer
used to operate the Web site.
The reason is obvious: hackers could access the computer containing this
list, either because the site is poorly protected or because the system or
processor contains a serious flaw unknown to anyone except the attackers
(a so-called zero-day flaw), who can exploit it.

Overview over data


Subsetting dataframe
 Brute Force means that we simply try all possibilities to find the right one (a technique that is
also used by real hackers… which is the reason why most modern systems only accept a few
(e.g. 3) trials before hitting a time limit or deactivating an account altogether). Here, we can use
a for loop for that:

Table() untuk mendapatkan frekuensi

e could 
use strsplit()
 (for stringsplit) in the following way

The fread() function performs just like the built-in read.delim() function but operates


much faster and produces a data.table, which is an optimized data.frame.
We can get the “top 10” passwords pretty easily in R using the summary() function on
a factor() (a function that creates a special enumerated reference type of a set of input
values) created from the original passwords, but the phpbb file was pre-uniq‘d so it isn’t
very interesting in this case:
we want a tad nicer output, so we need to transform the data just a bit to build
a data.frame and also include the percentages:
we check for commonality among “base” words, which (according to pipal) are “words with
any non-alpha character stripped from the start and end.” The gsub() function does most of
the heavy lifting here, taking in a regex and removing it from the original strings.
The gsub() function is vectorized so we can pass in the entire data.table column and it
will perform the substitution on each element without a loop (the same is true
for tolower()).
then use the same factor()/summary() combination to get the statistics we’re looking for,
and filter the data.frame on only basewords that have more than three characters.
we run nchar() over the original password column and create a new column that just has
the length of each passwors. Then, we build a contingency table from that new column and
show it first by length then create an ordered factor so we can view it also by frequency.
we break down the composition a bit more, seeing how many had 1-6 characters, 1-8, chars
and >9 chars. This is a basic data.frame filtering function (and we end up just counting the
resulting rows).
we use use grepl() which will return TRUE if a regex is found and rely on a sneaky bit of
functionality by the sum() function where it will ignore FALSE values and sum up
the TRUE ones in a vector (which is returned by grepl()).

 Put the list of words into a vector


 Create a “list of lists”—basically a nested data structure—that holds the
search term and the count of times it appeared in the password dump.
 Output the search term, count and percentage

Fungsi fread () bekerja seperti fungsi read.delim () bawaan tetapi beroperasi lebih cepat dan
menghasilkan data.table, yang merupakan data.frame yang dioptimalkan.

Kita bisa mendapatkan kata sandi "10 teratas" dengan cukup mudah di R menggunakan fungsi
summary () pada faktor () (fungsi yang membuat tipe referensi enumerasi khusus dari satu set nilai
input) yang dibuat dari kata sandi asli, tetapi phpbb file telah di uniq jadi tidak terlalu menarik dalam
kasus ini:

kita ingin keluaran yang lebih bagus, jadi kita perlu mengubah datanya sedikit untuk membuat
data.frame dan juga memasukkan persentase:

kami memeriksa kesamaan di antara kata-kata "dasar", yang (menurut pipal) adalah "kata-kata
dengan karakter non-alfa apa pun yang dihilangkan dari awal dan akhir." Fungsi gsub () melakukan
sebagian besar pekerjaan berat di sini, mengambil regex dan menghapusnya dari string aslinya.
Fungsi gsub () adalah vektorisasi sehingga kita bisa melewatkan seluruh kolom data.table dan itu
akan melakukan substitusi pada setiap elemen tanpa loop (hal yang sama berlaku untuk tolower ()).

lalu gunakan kombinasi faktor () / ringkasan () yang sama untuk mendapatkan statistik yang kami
cari, dan filter data.frame hanya pada kata dasar yang memiliki lebih dari tiga karakter.

kita menjalankan nchar () di atas kolom kata sandi asli dan membuat kolom baru yang hanya
memiliki panjang setiap kata sandi. Kemudian, kita membangun tabel kontingensi dari kolom baru
itu dan menampilkannya terlebih dahulu berdasarkan panjangnya kemudian membuat faktor yang
diurutkan sehingga kita dapat melihatnya juga berdasarkan frekuensi.

kami memecah komposisi sedikit lagi, melihat berapa banyak yang memiliki 1-6 karakter, 1-8,
karakter dan> 9 karakter. Ini adalah fungsi pemfilteran data.frame dasar (dan kami akhirnya hanya
menghitung baris yang dihasilkan).

kita menggunakan use grepl () yang akan mengembalikan TRUE jika regex ditemukan dan
bergantung pada fungsionalitas tersembunyi oleh fungsi sum () di mana ia akan mengabaikan nilai
FALSE dan menjumlahkan yang BENAR dalam vektor (yang dikembalikan oleh grepl ()).

• Letakkan daftar kata menjadi vektor

• Buat "daftar daftar" —pada dasarnya adalah struktur data bertingkat — yang menampung istilah
penelusuran dan berapa kali istilah itu muncul di dump kata sandi.

• Keluarkan istilah pencarian, hitungan dan persentase

Letter rules

Public name database to determine on the hacked list

Prediksi pasword yang mungkin

Aplod data, drag semua data, akses dengan Rstudio

Note dan komen sebagai hash

Open path data

Apload csv ke environment R

Liat 5 baris dan kolom pertama

Liat full data : nama, letter, number, alphanumerik

Mencari jumlha yang 1123

Prediksi dengan number kombinasi, 1-9 dengan increasing equencing

Merge letter pattern dan number pattern

Panggil database dan banyak kelua first name

Merge nama dan number buat cri potensi pw dengan liat perbedaan permutasi dari ketiga
kombinasi

Coba dan match dengan file yang benar

Hasilnya ditemukan 24 password yang sama dari total 49, 49%,

Dengan kode bisa cari nilai yang pasword paling banyak ditemukan
(suara meletus)

(mengetik suara)

- [Sulih suara] Halo, dan selamat datang di Big Data University.

Dalam modul ini, kita akan melihat

dasar-dasar privasi data.

Modul ini adalah lab langsung, dan kami akan melakukannya

menganalisis kata sandi menggunakan R.

Mari kita mulai.

Individu memiliki tanggung jawab untuk

secara aktif melindungi data pribadi mereka.

LeakedSource, www.leakedsource.com,

adalah mesin pencari yang mencari

catatan bocor di Internet.

LeakedSource menerbitkan sandi teratas

digunakan dalam peretasan dari akun yang terpengaruh oleh perangkat lunak perusak.

Tabel di sebelah kanan menunjukkan yang paling umum

kata sandi dari sekumpulan kata sandi Twitter yang diretas.

Kata sandi "kata sandi" telah digunakan hampir 20.000 kali.

Memprediksi kata sandi di R.

Dalam pelajaran ini, kami akan menghasilkan beberapa aturan angka

untuk mengidentifikasi kata sandi yang diretas di R.

Kami juga akan mengidentifikasi beberapa aturan huruf

untuk mengidentifikasi sandi yang sama.

Kami juga akan menggunakan database nama publik

untuk membantu kami menentukan sandi pada daftar yang diretas.

Terakhir, kami akan menjalankan permutasi angka,

huruf, dan nama untuk akhirnya diprediksi

sebanyak mungkin kata sandi dari daftar kata sandi yang diretas.

Tujuan latihan ini adalah untuk mendemonstrasikan caranya

beberapa baris kode dapat memprediksi sandi yang buruk.

Oleh karena itu, kita semua harus menggunakan kata sandi yang kuat dan unik.
Lihat kata sandi ini di sebelah kanan.

Mereka termasuk kombinasi kata, nama, dan angka,

serta beberapa tim sepak bola.

Ada beberapa tema umum

bagaimana orang menemukan sandi yang berbeda.

Pada 2013, Google mengungkapkan 10 ide kata sandi terburuk.

Mari kita lihat.

Menggunakan beberapa ide ini, kami akan menghasilkan

beberapa instruksi di R untuk mencoba dan memprediksi

sebanyak mungkin sandi dari daftar yang diretas.

Selamat datang di Meja Kerja Ilmuwan Data.

Untuk melakukan lab pelajaran di modul hari ini,

kita harus masuk.

Kami mulai dengan mengklik Data Saya

untuk mengunggah file R yang perlu kita gunakan.

Selanjutnya, kita klik Unggah Data.

Sekarang kita dapat menarik dan melepas file yang kita perlukan

untuk latihan ini dari hard drive lokal kami.

Kami sekarang dapat mengakses file-file ini melalui R Studio.

Mari kita mulai dengan membuka file skrip R.

File skrip R menyertakan catatan dan komentar

untuk membantu Anda dalam latihan.

Catatan dan komentar ini diawali dengan hash.

Kami menggunakan kontrol atau perintah enter untuk mengeksekusi

setiap baris kode.

Kami mengatur direktori kerja ke data sumber daya

sehingga kami dapat dengan mudah mengakses dua file lainnya

kami mengunggah ke Meja Kerja Ilmuwan Data.

Selanjutnya, kami mengunggah file csv bernama

Data Kata Sandi LinkedIn ke dalam lingkungan R.

Mari kita lihat lima baris pertama file.


File tersebut menyertakan nomor pangkat, kata sandi,

frekuensi penggunaan setiap kata sandi,

dan kolom lain, disebut Kata Sandi Anda.

Mari kita lihat data lengkap di file itu.

Kita bisa melihat nama, angka, dan teks alfanumerik.

Mari kita coba dan lihat berapa banyak kata sandi yang dimiliki

kombinasi angka 123 di dalamnya.

Tujuh kata sandi dalam dokumen kami

memiliki beberapa bentuk pola 123 secara berurutan,

termasuk kombinasi alfanumerik abc123.

Mari kita lihat berapa kali polanya

"lulus" digunakan dalam sandi.

Dua kali, kata "sandi"

dan kata "password1."

Untuk mencoba dan memprediksi kata sandi di

file kata sandi, kami akan membutuhkannya

untuk menggunakan beberapa kombinasi angka.

Dengan baris kode sederhana, kami sekarang telah menghasilkan pola

yang memasukkan nomor satu hingga sembilan dalam urutan yang meningkat.

Bisakah kita melakukan hal yang sama untuk surat?

Kami melihat contoh kata sandi abc123.

Mari gabungkan pola huruf dan pola angka.

Ayo unggah file yang kita punya

disebut Database Nama Depan.

Saat kami melihat file tersebut, kami melihat daftar panjang nama depan.

Ada total 5.494 baris.

Mari gabungkan nama dan nomornya

untuk membuat lebih banyak pola kata sandi potensial.

Dengan melihat permutasi pola yang berbeda

nama, angka, dan huruf, sekarang kita punya

16.985 opsi untuk kata sandi


yang mungkin cocok dengan yang ada di daftar.

Sekarang mari kita coba dan cocokkan daftar kita dengan kata sandi

yang sebenarnya ada di dalam file.

Ini adalah daftar semua kata sandi yang telah kami cocokkan

dengan pola angka, huruf,

dan nama yang kami buat.

Kami telah berhasil mencocokkan 24 kata sandi.

Ada total 49 kata sandi.

Kami dapat memprediksi 49% kata sandi.

Jika kita melihat frekuensi dengan yang mana

setiap kata sandi yang dapat kami prediksi digunakan,

kami menemukan beberapa baris hasil kode kami

dalam frekuensi gabungan 1,3 juta.

Itu 62%.

Hanya dengan beberapa baris kode, kami dapat melakukannya

untuk memprediksi kata sandi yang buruk dari daftar kata sandi yang diretas.

Mengingat jumlahnya yang jauh lebih canggih

ancaman internet, pengguna harus lebih waspada

melindungi informasi pribadi mereka.

Selamat belajar.

You might also like