1
00:00:00,730 --> 00:00:01,080
Baiklah.

2
00:00:01,110 --> 00:00:08,280
Jadi sekarang kita telah melihat apa beberapa kerentanan mungkin untuk kata sandi hash saatnya

3
00:00:08,280 --> 00:00:16,620
untuk naik level dan belajar tentang cara kita dapat mencegah jenis serangan kamus atau retak tabel hash.

4
00:00:16,890 --> 00:00:21,060
Dan untuk melakukan itu kita harus belajar tentang pengasinan.

5
00:00:21,180 --> 00:00:23,430
Sekarang apa sebenarnya pengasinan.

6
00:00:23,430 --> 00:00:26,370
Kita sudah tahu hashing itu apa.

7
00:00:26,420 --> 00:00:33,420
Saat kami mengambil kata sandi, kami menjalankannya melalui fungsi hash dan berakhir dengan hash yang kami simpan di

8
00:00:33,450 --> 00:00:34,980
basis data kami.

9
00:00:34,980 --> 00:00:41,340
Dan seperti yang kita lihat di pelajaran terakhir, kata sandi yang dihasilkan oleh manusia sangat tidak aman.

10
00:00:41,430 --> 00:00:47,190
Mereka cenderung sangat pendek dan mereka cenderung menjadi kata-kata kamus yang sangat mudah dicari

11
00:00:47,190 --> 00:00:52,850
dan membuat tabel hash untuk sekarang pengasinan membutuhkan hashing sedikit lebih jauh.

12
00:00:53,010 --> 00:01:01,470
Selain kata sandi, kami juga menghasilkan serangkaian karakter acak dan karakter tersebut bersama dengan kata

13
00:01:01,470 --> 00:01:06,590
sandi pengguna digabungkan dan kemudian dimasukkan melalui fungsi hash.

14
00:01:06,690 --> 00:01:13,560
Jadi hash yang dihasilkan dibuat dari kata sandi dan juga garam unik acak.

15
00:01:13,680 --> 00:01:20,400
Jadi itu berarti tidak peduli seberapa sederhana kata sandi pengguna menambahkan bahwa garam meningkatkan kompleksitasnya

16
00:01:20,490 --> 00:01:26,360
meningkatkan jumlah karakter dan kami membuat basis data pengguna kami jauh lebih aman.

17
00:01:26,400 --> 00:01:32,370
Jadi pertimbangkan masalah sebelumnya yang kita lihat dalam pelajaran terakhir yang kita bahas peretasan 1 banding 1.

18
00:01:32,370 --> 00:01:37,860
Sekarang kita tahu bahwa tiga dari pengguna kami memiliki kata sandi yang sama dan kami mengetahuinya karena mereka semua

19
00:01:37,860 --> 00:01:39,180
memiliki hash yang sama.

20
00:01:39,180 --> 00:01:47,730
Sekarang di sisi lain jika kita telah menghasilkan serangkaian karakter acak yang merupakan garam dan menggabungkan kata sandi dengan garam

21
00:01:47,760 --> 00:01:54,150
untuk menghasilkan hash maka mereka tidak akan memiliki hash yang sama dalam basis data pengguna

22
00:01:54,150 --> 00:01:55,060
kita.

23
00:01:55,080 --> 00:01:59,160
Jadi mari kita coba dan hasilkan hash Emily dari kata sandinya.

24
00:01:59,160 --> 00:02:03,110
Jadi kita tahu bahwa kata sandinya unik dan kami menghasilkan garam acak.

25
00:02:03,120 --> 00:02:10,980
Jadi mari kita lanjutkan dan masukkan kualitas kata sandinya dan kemudian kita tambahkan pada akhirnya garam acak

26
00:02:11,010 --> 00:02:15,420
yang kita hasilkan dan kita berakhir dengan hash.

27
00:02:15,600 --> 00:02:24,960
Namun hash ini tidak sama dengan hash Tony atau hash Angela karena garamnya berbeda setiap

28
00:02:25,050 --> 00:02:26,040
kali.

29
00:02:26,070 --> 00:02:29,460
Sekarang garam adalah sesuatu yang tidak harus diingat pengguna.

30
00:02:29,640 --> 00:02:34,510
Dan sebaliknya itu disimpan dalam database bersama dengan hash.

31
00:02:34,830 --> 00:02:40,680
Jadi itu berarti ketika pengguna mengetikkan kata sandi mereka ketika mereka mencoba masuk Anda menggabungkan kata sandi mereka

32
00:02:40,800 --> 00:02:46,470
dengan garam dan jika Anda menghasilkan hash yang sama maka mereka harus memiliki kata sandi yang sama.

33
00:02:46,470 --> 00:02:47,580
Ini agak pintar bukan.

34
00:02:48,150 --> 00:02:54,180
Dan pada basis data kami tentu saja kami tidak akan menyimpan kata sandi mereka tetapi hanya garam dan hash.

35
00:02:54,270 --> 00:03:02,100
Sekarang pertimbangkan statistik kami sebelumnya. Anda dapat menghasilkan sekitar 20 miliar kosong LIMA HASH per detik.

36
00:03:02,100 --> 00:03:09,570
Jadi, bahkan jika kami menambahkan garam dan kami membuatnya lebih sulit untuk menghasilkan tabel hash dengan beberapa

37
00:03:09,600 --> 00:03:16,830
penggunaan murah terbaru, Anda mungkin masih dapat menghasilkan tabel hash dengan semua kombinasi garam relatif cepat.

38
00:03:16,830 --> 00:03:20,090
Jadi apa lagi yang bisa kita lakukan untuk meningkatkan keamanan.

39
00:03:20,520 --> 00:03:23,990
Kita bisa menggunakan sesuatu selain dari lima kosong.

40
00:03:23,990 --> 00:03:24,530
Kanan.

41
00:03:24,600 --> 00:03:32,580
Algoritma hashing lain yang dihargai karena sangat lambat dan ini adalah di mana B crypt

42
00:03:32,580 --> 00:03:33,150
masuk

43
00:03:33,210 --> 00:03:40,770
Ini adalah salah satu algoritma hashing standar industri yang digunakan pengembang untuk menjaga keamanan kata sandi

44
00:03:40,770 --> 00:03:46,560
penggunanya karena Anda dapat menghitung 20 miliar kosong LIMA HASHES per detik.

45
00:03:47,040 --> 00:03:55,890
Bahkan penggunaan Jeep terbaru dan terhebat pada tahun 2019 masih dapat menghitung hanya sekitar 17.000 menjadi hash crypt per detik yang

46
00:03:55,890 --> 00:04:03,270
membuatnya secara dramatis lebih sulit bagi seorang hacker untuk menghasilkan tabel hash yang telah dikompilasi sebelumnya dan menyerang

47
00:04:03,690 --> 00:04:10,200
tabel hash daripada mengambil sesuatu seperti tiga detik jika itu adalah hash kosong lima jika hash

48
00:04:10,500 --> 00:04:12,220
menggunakan B crypt.

49
00:04:12,240 --> 00:04:16,710
Ini akan membawa Anda sekitar delapan bulan yang tidak terlalu layak untuk diretas.

50
00:04:16,770 --> 00:04:22,800
Mereka mungkin akan pergi dan mencari perusahaan yang memiliki keamanan kurang diaktifkan dan untuk membuat kata sandi

51
00:04:22,980 --> 00:04:25,950
kami lebih aman ketika kami menggunakan B crypt.

52
00:04:25,950 --> 00:04:32,970
Ini memiliki konsep apa yang disebut Putaran garam berapa banyak putaran yang akan Anda berikan garam pada kata sandi Anda dan jelas

53
00:04:33,330 --> 00:04:39,680
semakin banyak putaran yang Anda lakukan semakin membuat kata sandi Anda lebih asin dan semakin aman pula dari peretas.

54
00:04:39,690 --> 00:04:42,100
Jadi apa sebenarnya garam itu?

55
00:04:42,450 --> 00:04:50,460
Baiklah katakanlah kata sandi pengguna asli kami unik dan kami menghasilkan serangkaian karakter

56
00:04:50,610 --> 00:04:52,530
acak sebagai garam.

57
00:04:52,530 --> 00:04:55,660
Jadi sekarang kami memiliki kualitas dan set garam acak.

58
00:04:55,860 --> 00:05:01,140
Kita melewatkannya melalui fungsi hash kita b crypt dan kita berakhir dengan hash.

59
00:05:01,170 --> 00:05:03,810
Nah, itu satu putaran pengasinan.

60
00:05:03,810 --> 00:05:10,650
Jika kita ingin memiliki dua putaran pengasinan, maka kita ambil hash yang dihasilkan di Babak 1

61
00:05:10,650 --> 00:05:17,970
dan kita tambahkan garam yang sama dari sebelumnya dan sekarang kita jalankan melalui B crypt fungsi hash lagi

62
00:05:18,030 --> 00:05:25,190
dan kita berakhir dengan hash yang berbeda dan berapa kali Anda melakukan ini adalah jumlah putaran garam.

63
00:05:25,200 --> 00:05:32,760
Sekarang alasan mengapa ini jenius adalah karena ketika komputer semakin cepat ingat bahwa Hukum Moore mengatakan bahwa

64
00:05:32,760 --> 00:05:40,410
setiap tahun jumlah transistor dalam chip komputer hampir dua kali lipat dan biaya komputer cepat itu menjadi

65
00:05:40,500 --> 00:05:41,310
dua.

66
00:05:41,340 --> 00:05:45,320
Jadi setiap tahun Anda mendapatkan lebih banyak daya komputasi dengan lebih sedikit uang.

67
00:05:45,390 --> 00:05:50,990
Dan di sinilah putaran garam masuk ketika Anda hashing kata sandi Anda menggunakan B crypt.

68
00:05:51,150 --> 00:05:55,350
Anda dapat mengatur jumlah putaran yang ingin Anda salin kata sandi Anda.

69
00:05:55,350 --> 00:06:02,970
Jadi itu berarti mungkin tahun ini di 2019 Anda menyerang 10 putaran, tetapi mungkin tahun depan Anda dapat

70
00:06:02,970 --> 00:06:07,840
meningkatkan jumlah itu menjadi 12 dan untuk setiap peningkatan jumlah itu.

71
00:06:08,010 --> 00:06:12,280
Jumlah waktu yang dibutuhkan untuk meng-hash kata sandi Anda berlipat ganda.

72
00:06:12,450 --> 00:06:19,620
Dan itu berarti Anda tidak perlu mengubah algoritma hashing atau memperbarui kode Anda selain hanya mengubah

73
00:06:19,620 --> 00:06:22,710
satu nomor untuk mengikuti perkembangan zaman.

74
00:06:22,740 --> 00:06:30,390
Jadi, hanya ulasan Anda yang kembali ke basis data pengguna yang akan menyimpan nama pengguna setiap

75
00:06:30,390 --> 00:06:38,670
pengguna akan memiliki garam yang dihasilkan secara acak disimpan dan kemudian akan menyimpan hash mereka setelah sejumlah putaran pengasinan.

76
00:06:40,240 --> 00:06:45,740
Dan ketika datang untuk memeriksa kata sandi mereka ketika mereka masuk akan mengambil kata sandi yang mereka masukkan.

77
00:06:45,760 --> 00:06:51,700
Gabungkan dengan garam yang disimpan dalam database dan jalankan melalui jumlah putaran salting yang sama

78
00:06:51,700 --> 00:06:57,970
sampai kita berakhir dengan hash terakhir dan kita membandingkan hash dengan yang disimpan dalam database

79
00:06:57,970 --> 00:07:02,570
untuk melihat apakah mereka telah memasukkan yang benar kata sandi.

80
00:07:02,620 --> 00:07:04,210
Jadi mari kita mulai.

81
00:07:04,210 --> 00:07:11,340
Dalam kehidupan nyata dan terapkan skrip B dan putaran salting ke dalam otentikasi situs web kami.

82
00:07:11,620 --> 00:07:18,340
Sekarang paket yang akan kita gunakan untuk hash kata sandi kita menggunakan skrip B juga disebut B crypt

83
00:07:18,730 --> 00:07:22,900
dan Anda dapat menemukan dokumentasi untuk itu seperti biasa di NPM.

84
00:07:22,900 --> 00:07:28,000
Sekarang skrip B agak aneh tentang kompatibilitas virgin dengan node.

85
00:07:28,210 --> 00:07:35,530
Jadi, jika Anda ragu-ragu, pastikan untuk memeriksa versi simpul Anda terlebih dahulu dengan mengetik simpul dasbor versi atau

86
00:07:35,830 --> 00:07:37,150
simpul dasbor V.

87
00:07:37,360 --> 00:07:42,640
Dan Anda dapat melihat bahwa saat ini saya sedang menjalankan rilis stabil terbaru dari simpul yang sepuluh

88
00:07:42,640 --> 00:07:46,430
poin lima belas poin nol pada titik saat ini dalam waktu.

89
00:07:46,450 --> 00:07:53,170
Sekarang jika Anda ingin tahu untuk apa versi stabil saat ini ketika Anda melihat video ini.

90
00:07:53,200 --> 00:07:59,530
Jadi ini akan diperbarui setiap minggu atau bulanan sehingga pada saat Anda menonton video ini jumlah ini mungkin

91
00:07:59,530 --> 00:08:00,890
sudah lebih tinggi.

92
00:08:00,940 --> 00:08:06,210
Jadi ketika Anda memeriksa versi simpul Anda bisa melihatnya tergantung pada versi simpul Anda.

93
00:08:06,370 --> 00:08:13,240
Mereka juga memiliki versi b crypto yang kompatibel dengan versi node tersebut dan mereka sangat

94
00:08:13,330 --> 00:08:17,680
spesifik untuk tidak mendukung versi node yang tidak stabil.

95
00:08:17,710 --> 00:08:24,220
Jadi, apa pun yang merupakan angka ganjil B crypt tidak ingin didukung karena itu kurang stabil memiliki lebih banyak

96
00:08:24,220 --> 00:08:28,740
peluang bug dan mereka selalu merekomendasikan Anda untuk menggunakan versi stabil terbaru.

97
00:08:31,010 --> 00:08:38,390
Jadi jika Anda memiliki versi simpul yang lebih lama atau bahkan jika Anda memiliki dua versi catatan baru bagaimana Anda bisa kembali ke versi ini yang ada di sebelah

98
00:08:38,390 --> 00:08:43,350
kiri di sini di no G. S. situs web.

99
00:08:43,970 --> 00:08:51,050
Anda dapat menggunakan sesuatu yang disebut VM dan Anda dapat menginstal dan M dengan membuka repositori

100
00:08:51,380 --> 00:08:56,870
GitHub-nya dan cukup menyalin baris kode ini dan menempelkannya ke terminal Anda.

101
00:08:56,870 --> 00:09:03,170
Dan begitu Anda telah menginstalnya restart terminal Anda begitu tutup dan buka lagi dan Anda harus dapat

102
00:09:03,170 --> 00:09:09,800
memeriksa versi Anda dengan menulis dan versi dasbor m dash dan jika Anda mendapatkan versi kembali maka itu

103
00:09:09,800 --> 00:09:15,830
berarti sudah pasti diinstal dan Anda dapat menggunakannya untuk memperbarui atau menurunkan versi node Anda.

104
00:09:15,830 --> 00:09:21,620
Jadi kita akan menargetkan sepuluh koma lima belas koma nol atau apa pun yang Anda lihat ketika Anda

105
00:09:21,620 --> 00:09:23,190
mengenal Yesus dot org.

106
00:09:23,210 --> 00:09:30,260
Versi dukungan jangka panjang dan kita akan menggunakan VM untuk menginstal node pada versi itu hanya dengan

107
00:09:30,260 --> 00:09:32,380
menulis dan menginstal M.

108
00:09:32,410 --> 00:09:41,480
Sepuluh koma lima belas koma nol dan tekan enter dan itu akan mengunduh dan menginstal versi stabil

109
00:09:41,570 --> 00:09:44,530
terbaru node untuk Anda sekarang.

110
00:09:44,660 --> 00:09:51,680
Setelah Anda mendapatkan versi stabil terbaru yang diunduh dan diinstal, Anda dapat melanjutkan dan mencari

111
00:09:51,680 --> 00:09:54,560
versi B crypt yang kompatibel.

112
00:09:54,560 --> 00:09:59,570
Jadi saat ini kita berada di Versi 10 dan b crypt harus tiga atau lebih.

113
00:09:59,570 --> 00:10:10,430
Sekarang pada titik saat ini jika saya hanya mencoba dan melihat ke proyek rahasia saya dan menjalankan npm install B crypt maka Anda dapat

114
00:10:10,850 --> 00:10:17,810
melihat saya mendapatkan beberapa peringatan dan saya menduga ini mungkin hanya akan terjadi selama beberapa

115
00:10:17,810 --> 00:10:24,170
hari ini sementara B crypt tim berebut untuk mencoba dan memperbarui kode mereka.

116
00:10:24,170 --> 00:10:27,000
Tetapi jika Anda mendapatkan sesuatu yang serupa seperti yang saya lakukan.

117
00:10:27,110 --> 00:10:34,910
Bagaimana Anda menyelidiki untuk melihat bagaimana memperbaikinya atau apakah jika Anda bahkan perlu memperbaikinya dengan setiap paket NPM

118
00:10:34,910 --> 00:10:42,530
selalu ada tautan ke repositori tempat kode di-host di github dan di GitHub Anda selalu dapat menjelajahi masalah

119
00:10:42,530 --> 00:10:49,100
yang dialami orang-orang sementara mereka mencoba menggunakan repositori ini dan Anda dapat melihat bahwa baru-baru

120
00:10:49,100 --> 00:10:52,920
ini tiga hari berlalu lima hari yang lalu.

121
00:10:53,060 --> 00:11:00,260
Semua orang tampaknya memiliki masalah dengan menginstal B crypt dan jika Anda mengkliknya Anda akan melihat wacana

122
00:11:00,320 --> 00:11:08,000
atau obrolan atau pesan antara pembuat B puisi dan orang-orang yang mengalami masalah dan Anda dapat melihat apakah Anda

123
00:11:08,000 --> 00:11:12,670
mendapatkan masalah yang sama sekarang kita tidak memiliki masalah seburuk ini.

124
00:11:12,680 --> 00:11:18,620
Sebagai orang ini karena mereka benar-benar mendapatkan kesalahan dan mereka tidak benar-benar

125
00:11:18,650 --> 00:11:25,580
menginstalnya dan jika Anda membaca ini Anda dapat melihat apa solusinya yang orang merekomendasikan dan

126
00:11:25,580 --> 00:11:32,330
pada titik di mana saya menjalankannya yang paling mudah caranya adalah dengan menginstal versi

127
00:11:32,330 --> 00:11:40,300
B crypt 3 yang sedikit lebih tua. 0 titik poin sedangkan versi terbaru adalah tiga koma nol koma tiga.

128
00:11:40,400 --> 00:11:47,990
Jadi untuk menginstal versi yang sedikit lebih tua menggunakan NPM Anda masih menulis NPM PMI untuk menginstal dan kemudian Anda menambahkan

129
00:11:47,990 --> 00:11:53,570
nama paket dan kemudian Anda memiliki tanda dan setelah bagian luar muncul versi yang Anda

130
00:11:53,570 --> 00:11:54,110
inginkan.

131
00:11:54,110 --> 00:11:57,950
Jadi saya ingin tiga koma nol koma dua.

132
00:11:57,950 --> 00:12:05,360
Jadi itu adalah versi yang NPM akan instal untuk saya dan Anda dapat melihat bahwa

133
00:12:05,690 --> 00:12:14,270
ketika saya mengubah perintah instalasi saya, saya tidak lagi mendapatkan semua masalah ini dan paket saya berhasil diinstal.

134
00:12:14,270 --> 00:12:16,280
Jadi Anda mungkin tidak mengalami sama sekali.

135
00:12:16,280 --> 00:12:21,740
Anda mungkin tidak mendapatkan masalah sama sekali selain dari mungkin semua terlalu peringatan NPM

136
00:12:21,740 --> 00:12:26,820
karena kami tidak memiliki deskripsi atau repositori untuk paket kami di sini.

137
00:12:27,170 --> 00:12:30,320
Tetapi selain itu Anda mungkin sebenarnya tidak memiliki masalah.

138
00:12:30,440 --> 00:12:36,110
Tetapi jika Anda mengalami masalah dengan skrip B atau paket lainnya di masa mendatang, Anda

139
00:12:36,110 --> 00:12:41,990
akan tahu cara menyelidiki masalah tersebut dan melihat apakah ada beberapa solusi yang ditawarkan untuk masalah tersebut.

140
00:12:42,240 --> 00:12:48,680
Baiklah, sekarang setelah B crypt berhasil diinstal di proyek kami, langkah selanjutnya adalah benar-benar

141
00:12:48,680 --> 00:12:49,530
menggunakannya.

142
00:12:49,610 --> 00:12:56,750
Jadi kita akan melanjutkan dan menukar MDG 5 dan sebagai gantinya kita akan menggunakan B crypt sehingga

143
00:12:56,750 --> 00:12:59,690
B crypt sama dengan membutuhkan B crypt.

144
00:12:59,690 --> 00:13:05,250
Kemudian kami menentukan jumlah putaran garam sehingga saat ini 10 harus lebih dari cukup.

145
00:13:05,360 --> 00:13:11,750
Dan jika Anda ingat bahwa semakin banyak Anda menambah jumlahnya semakin sulit komputer Anda juga harus

146
00:13:11,750 --> 00:13:13,970
bekerja untuk menghasilkan hash tersebut.

147
00:13:13,970 --> 00:13:21,830
Dan jika Anda menggulir ke bawah itu benar-benar menunjukkan kepada Anda berapa lama untuk menghasilkan hash Anda atau berapa banyak hash

148
00:13:21,830 --> 00:13:25,100
dibuat tergantung pada bagaimana Anda mengubah nomor ini.

149
00:13:25,100 --> 00:13:27,630
Jadi Anda mengatakan bahwa putaran garam nomor 231.

150
00:13:27,770 --> 00:13:34,930
Kemudian pada inti dua gigahertz dapat berharap untuk mengambil dua hari atau tiga hari untuk menghasilkan hash yang mana

151
00:13:34,930 --> 00:13:39,670
mungkin terlihat seperti aplikasi Anda sedang crash tetapi sebenarnya hanya menjauh.

152
00:13:39,730 --> 00:13:47,200
Jadi setidaknya untuk 2019 dan 2020 saya akan merekomendasikan menjaga putaran garam pada 10 dan benar-benar menggunakan

153
00:13:47,200 --> 00:13:47,860
crypt.

154
00:13:47,860 --> 00:13:53,920
Kita akan menggunakan fungsi hash dengan memasukkan kata sandi yang telah diketikkan pengguna saat mereka mendaftar dan

155
00:13:54,340 --> 00:14:00,880
juga jumlah putaran pengasinan yang ingin kita lakukan dan b crypt akan secara otomatis menghasilkan garam acak dan

156
00:14:00,880 --> 00:14:05,740
juga hash kata sandi kita dengan jumlah putaran garam yang kami rancang.

157
00:14:06,130 --> 00:14:10,430
Jadi mari kita lanjutkan dan menerapkannya di dalam rute pos register kita.

158
00:14:10,480 --> 00:14:13,090
Jadi di dalam adalah pos yang tepat untuk mendaftar.

159
00:14:13,090 --> 00:14:19,300
Saya akan menempelkan dua baris kode yang telah saya salin dari dokumentasi dan di

160
00:14:19,300 --> 00:14:26,800
dalam fungsi callback ini adalah ketika kita akan menghasilkan hash terakhir setelah 10 putaran salting dan juga

161
00:14:26,800 --> 00:14:28,690
memasukkan kata sandi.

162
00:14:28,690 --> 00:14:34,180
Sekarang kata sandi yang harus kita lewati di sini tentu saja kata sandi bertubuh permintaan yang

163
00:14:34,180 --> 00:14:40,570
diketikkan pengguna ke bidang kata sandi ketika mereka mencoba mendaftar dan di dalam fungsi panggilan balik ini akan memiliki

164
00:14:40,620 --> 00:14:45,490
akses ke hash ini yang dapat kita simpan ke dalam basis data kita .

165
00:14:45,490 --> 00:14:51,640
Jadi saya akan memilih sisa kode ini dan cukup tempel di sini untuk menjalankan dan membuat pengguna kami

166
00:14:51,640 --> 00:14:58,510
hanya setelah kami menghasilkan hash kami dan saya akan mengganti bidang kata sandi di sini untuk hash yang kami hasilkan dan

167
00:14:58,510 --> 00:15:02,220
kemudian kita akan melakukan hal yang persis sama seperti sebelumnya.

168
00:15:02,230 --> 00:15:08,890
Kami akan menyimpan pengguna baru kami bersama dengan email mereka dan kata sandi hash ke dalam basis data kami.

169
00:15:08,890 --> 00:15:12,700
Jadi mari kita lanjutkan dan jalankan ini dan lihat apakah itu berhasil.

170
00:15:12,760 --> 00:15:18,790
Jadi pastikan untuk menghapus semua menyebutkan lima kosong jika Anda akan menghapus paket itu dari proyek

171
00:15:18,790 --> 00:15:19,480
Anda.

172
00:15:19,480 --> 00:15:27,430
Anda dapat melihat di sini saya mendapatkan peringatan yang saya miliki di permintaan maaf saya di saluran dua belas. Saya punya log

173
00:15:27,520 --> 00:15:32,120
konsol yang menggunakan lima paket kosong saya yang sekarang tentu saja dihapus.

174
00:15:32,140 --> 00:15:33,700
Jadi mari kita lanjutkan dan memperbaikinya.

175
00:15:34,030 --> 00:15:41,050
Jadi pada baris nomor 12 saya punya log konsol saya jadi saya hanya akan menghapus dua baris ini.

176
00:15:41,050 --> 00:15:46,720
Jadi mari kita lanjutkan dan tekan save dan Node monitor dan restart dan Anda dapat melihat sekarang

177
00:15:47,050 --> 00:15:49,160
server kami sudah mulai tanpa masalah.

178
00:15:49,330 --> 00:15:51,260
Jadi, setiap kali Anda menghapus paket.

179
00:15:51,340 --> 00:15:56,720
Berhati-hatilah agar Anda tidak menggunakannya di suatu tempat di dalam kode Anda.

180
00:15:57,040 --> 00:15:59,420
Dan mari kita menuju ke tuan rumah lokal tiga ribu.

181
00:15:59,440 --> 00:16:11,080
Mari mendaftarkan pengguna baru dan pengguna ini akan menjadi pengguna di hash dot com crypt besar dan saya benar-benar membuat email ini tetapi itu hanya berarti

182
00:16:11,080 --> 00:16:15,600
bahwa ketika kita melihatnya di database kita akan lebih mudah

183
00:16:15,600 --> 00:16:19,680
untuk melihat pengguna dengan hash apakah fungsi hash.

184
00:16:19,690 --> 00:16:26,950
Jadi pengguna ini adalah pengguna yang buruk karena mereka akan menggunakan kata sandi yang sangat sederhana 1 2 3 4 5 6.

185
00:16:27,220 --> 00:16:29,320
Dan kita akan mendaftar.

186
00:16:29,320 --> 00:16:35,980
Jadi kami telah berhasil menemukan halaman rahasia yang berarti bahwa pengguna kami seharusnya berhasil disimpan

187
00:16:35,980 --> 00:16:38,710
ke dalam basis data kami.

188
00:16:38,770 --> 00:16:41,360
Jadi mari kita lanjutkan dan memeriksanya.

189
00:16:41,440 --> 00:16:47,290
Anda dapat melihat bahwa pengguna terakhir kami yang kami daftarkan sekarang memiliki pengguna email

190
00:16:47,290 --> 00:16:52,440
itu di cache rahasia dot com dan kata sandinya cukup panjang.

191
00:16:52,480 --> 00:16:59,710
Dan ini adalah hash yang dihasilkan menggunakan skrip B serta 10 putaran pengasinan.

192
00:16:59,740 --> 00:17:06,550
Jadi jika Anda memutuskan untuk mencoba dan mencari ini di Google atau di mana pun itu berada

193
00:17:06,550 --> 00:17:14,080
atau semacam tabel pelangi tabel hash apa pun itu, Anda seharusnya tidak dapat membedakan kata sandi asli pengguna yang

194
00:17:14,080 --> 00:17:15,010
merupakan kunci.

195
00:17:15,010 --> 00:17:18,700
Sekarang bagaimana dengan ketika pengguna mencoba masuk.

196
00:17:18,730 --> 00:17:26,830
Jadi dalam rute masuk kita alih-alih menggunakan kosong lima untuk mengulangi kata sandi yang telah mereka masukkan kita akan

197
00:17:26,820 --> 00:17:34,020
menggunakan B crypt dan cara mereka memberitahu kita untuk memeriksa kata sandi kita adalah dengan menggunakan B

198
00:17:34,030 --> 00:17:38,710
crypt dot bandingkan dan hasilkan hash menggunakan baris kode ini.

199
00:17:38,710 --> 00:17:44,710
Jadi mari kita lanjutkan dan hapus lima bagian kosong ini karena kita tidak lagi menggunakannya dan

200
00:17:44,710 --> 00:17:50,380
sebagai gantinya kita hanya menarik nama pengguna dan kata sandi yang diketikkan pengguna pada halaman

201
00:17:50,380 --> 00:17:57,070
login dan kemudian kita akan melihat-lihat basis data pengguna kami dan menemukan satu tempat email mereka cocok dengan nama

202
00:17:57,070 --> 00:18:03,490
pengguna yang saat ini sedang mencoba untuk masuk dan setelah kami menemukan orang itu maka kami harus

203
00:18:03,490 --> 00:18:10,120
memeriksa untuk melihat apakah kata sandi yang disimpan sama dengan kata sandi yang saat ini dimasukkan pada halaman

204
00:18:10,120 --> 00:18:16,750
login dan ini adalah bagian di mana kita akan mengganti dengan metode B crypt bandingkan yang baru saja

205
00:18:16,750 --> 00:18:17,710
kita salin.

206
00:18:17,830 --> 00:18:25,030
Jadi mari kita lanjutkan dan tempel ke sini dan kami sedang menjalankan metode perbandingan ini dan kami membandingkan kata sandi

207
00:18:25,420 --> 00:18:30,610
teks biasa yang merupakan salah satu yang saat ini tidak digunakan oleh pengguna.

208
00:18:30,730 --> 00:18:39,050
Jadi kami akan menggantinya dengan kata sandi terhadap hash yang kami simpan di basis data

209
00:18:39,050 --> 00:18:49,970
kami yang disimpan di dalam bidang kata sandi pengguna yang ditemukan yang pada dasarnya di sini dan kemudian kami akan memeriksa

210
00:18:49,970 --> 00:18:53,860
untuk melihat apakah hasilnya benar benar .

211
00:18:53,900 --> 00:18:58,180
Sekarang pada titik ini beberapa dari Anda mungkin telah menyadari bahwa ada sedikit masalah di sini.

212
00:18:58,240 --> 00:18:58,580
Kanan.

213
00:18:58,640 --> 00:19:07,370
Karena dalam metode pembandingan crypt besar ini callback yang telah mereka tetapkan menggunakan kesalahan dan kenaikan.

214
00:19:07,430 --> 00:19:11,480
Sekarang di mana lagi kita mendefinisikan rez di sini tentu saja.

215
00:19:11,510 --> 00:19:19,310
Jadi dalam panggilan balik kami jika kami ingin melakukan resident render di dalam metode b crypt ini maka kami harus mengganti nama

216
00:19:19,310 --> 00:19:25,830
ini menjadi sesuatu yang lain hanya agar kode kami tidak bingung mana yang sedang kami coba gunakan.

217
00:19:25,850 --> 00:19:32,660
Jadi mari kita lanjutkan dan ganti nama ini menjadi hasil yang membuatnya berbeda dari ini

218
00:19:32,780 --> 00:19:43,730
yang berarti bahwa di dalam sini kita dapat memeriksa untuk melihat apakah hasil perbandingan ini sama dengan true yang berarti bahwa kata sandi setelah

219
00:19:43,820 --> 00:19:50,070
hashing dengan garam sama dengan hash yang disimpan di basis data kami.

220
00:19:50,180 --> 00:19:57,170
Maka itu berarti bahwa pengguna mendapat kata sandi login yang benar dan kami harus membuka kembali halaman rahasia

221
00:19:57,170 --> 00:19:57,890
kami.

222
00:19:58,100 --> 00:20:04,220
Jadi mari kita lanjutkan dan simpan kode kita dan periksa apakah server kita masih berjalan tanpa kesalahan.

223
00:20:04,220 --> 00:20:08,200
Dan mari kita kembali ke beranda kami dan mencoba untuk masuk ke pengguna itu.

224
00:20:08,300 --> 00:20:16,130
Jadi kita punya pengguna B crypto hash dot com dan kata sandi mereka adalah 1 2 3 4 5 6 hit log

225
00:20:16,130 --> 00:20:20,820
in dan kita dibawa ke halaman rahasia yang berarti bahwa perbandingan itu berhasil.

226
00:20:20,930 --> 00:20:21,980
Jadi begitu.

227
00:20:21,980 --> 00:20:28,970
Kami telah berhasil mengimplementasikan skrip B bersama penggaraman dan sepuluh putaran penggaraman pada saat itu untuk mengamankan basis data pengguna

228
00:20:28,970 --> 00:20:35,570
kami secara besar-besaran dan membuatnya sangat tidak mungkin untuk meretas menggunakan sesuatu seperti tabel hash atau serangan kamus,

229
00:20:35,570 --> 00:20:41,600
tetapi kami masih dapat naik level lebih tinggi dan kami Akan menemukan itu dalam pelajaran berikutnya.
