This repository was archived by the owner on Feb 10, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhash-checker
298 lines (256 loc) · 7.43 KB
/
hash-checker
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
#!/bin/bash
#-------------------------------------------------------------------------
# Script Bash sederhana untuk mengecek nilai Hash pada sebuah File.
# Pembuat: Rofi (Fixploit03)
#
# Hash merupakan alat yang sangat berguna dalam menjaga integritas file,
# memastikan bahwa data tetap utuh dan tidak mengalami perubahan yang
# tidak diinginkan. Dengan memverifikasi hash, kita dapat mendeteksi
# manipulasi atau kerusakan file, sehingga keaslian dan keamanannya
# tetap terjaga.
#-------------------------------------------------------------------------
# Variabel warna
m="\e[0;31m" # Merah
h="\e[0;32m" # Hijau
k="\e[0;33m" # Kuning
b="\e[0;34m" # Biru
p="\e[0;37m" # Putih
r="\e[0m" # Reset
ib=$'\e[0;34m' # Input read Biru
ip=$'\e[0;37m' # Input read Putih
ir=$'\e[0m' # Input reset
trap 'echo -e "\n${p}[${m}-${p}] KeyboardInterrupt${r}"; exit 1' SIGINT
# Fungsi untuk input Hash MD5
function input_hash_md5(){
while true; do
read -p "${ip}[${ib}#${ip}] Masukkan Hash MD5: " hash_md5
if [[ -z "${hash_md5}" ]]; then
echo -e "${p}[${m}-${p}] Hash MD5 tidak boleh kosong.${r}"
continue
else
if [[ "${hash_md5}" =~ ^[a-fA-F0-9]{32}$ ]]; then
break
else
echo -e "${p}[${m}-${p}] Hash MD5 tidak valid.${r}"
continue
fi
fi
done
}
# Fungsi untuk input Hash SHA-1
function input_hash_sha1(){
while true; do
read -p "${ip}[${ib}#${ip}] Masukkan Hash SHA-1: " hash_sha1
if [[ -z "${hash_sha1}" ]]; then
echo -e "${p}[${m}-${p}] Hash SHA-1 tidak boleh kosong.${r}"
continue
else
if [[ "${hash_sha1}" =~ ^[a-fA-F0-9]{40}$ ]]; then
break
else
echo -e "${p}[${m}-${p}] Hash SHA-1 tidak valid.${r}"
continue
fi
fi
done
}
# Fungsi untuk input Hash SHA-256
function input_hash_sha256(){
while true; do
read -p "${ip}[${ib}#${ip}] Masukkan Hash SHA-256: " hash_sha256
if [[ -z "${hash_sha256}" ]]; then
echo -e "${p}[${m}-${p}] Hash SHA-256 tidak boleh kosong.${r}"
continue
else
if [[ "${hash_sha256}" =~ ^[a-fA-F0-9]{64}$ ]]; then
break
else
echo -e "${p}[${m}-${p}] Hash SHA-256 tidak valid.${r}"
continue
fi
fi
done
}
# Fungsi untuk input Hash SHA-512
function input_hash_sha512(){
while true; do
read -p "${ip}[${ib}#${ip}] Masukkan Hash SHA-512: " hash_sha512
if [[ -z "${hash_sha512}" ]]; then
echo -e "${p}[${m}-${p}] Hash SHA-512 tidak boleh kosong.${r}"
continue
else
if [[ "${hash_sha512}" =~ ^[a-fA-F0-9]{128}$ ]]; then
break
else
echo -e "${p}[${m}-${p}] Hash SHA-512 tidak valid.${r}"
continue
fi
fi
done
}
# Fungsi untuk input file yang mau dicek nilai Hashnya
function input_file(){
while true; do
read -e -p "${ip}[${ib}#${ip}] Masukkan nama file yang mau dicek nilai Hashnya: " file
if [[ -z "${file}" ]]; then
echo -e "${p}[${m}-${p}] Nama file tidak boleh kosong.${r}"
continue
else
if [[ -f "${file}" ]]; then
break
else
echo -e "${p}[${m}-${p}] File '${file}' tidak ditemukan.${r}"
continue
fi
fi
done
}
# Fungsi untuk cek Hash MD5
function cek_hash_md5(){
input_hash_md5
input_file
echo -e "${p}[${b}*${p}] Mengecek Hash MD5...${r}"
hash_file=$(md5sum "${file}" | awk '{print $1}')
if [[ "${hash_md5}" == "${hash_file}" ]]; then
echo -e "${p}[${h}+${p}] Hash MD5 sama.${r}"
exit 0
else
echo -e "${p}[${m}-${p}] Hash MD5 tidak sama.${r}"
exit 1
fi
}
# Fungsi untuk cek Hash SHA-1
function cek_hash_sha1(){
input_hash_sha1
input_file
echo -e "${p}[${b}*${p}] Mengecek Hash SHA-1...${r}"
hash_file=$(sha1sum "${file}" | awk '{print $1}')
if [[ "${hash_sha1}" == "${hash_file}" ]]; then
echo -e "${p}[${h}+${p}] Hash SHA-1 sama.${r}"
exit 0
else
echo -e "${p}[${m}-${p}] Hash Sha-1 tidak sama.${r}"
exit 1
fi
}
# Fungsi untuk cek Hash SHA-256
function cek_hash_sha256(){
input_hash_sha256
input_file
echo -e "${p}[${b}*${p}] Mengecek Hash SHA-256...${r}"
hash_file=$(sha256sum "${file}" | awk '{print $1}')
if [[ "${hash_sha256}" == "${hash_file}" ]]; then
echo -e "${p}[${h}+${p}] Hash SHA-256 sama.${r}"
exit 0
else
echo -e "${p}[${m}-${p}] Hash Sha-256 tidak sama.${r}"
exit 1
fi
}
# Fungsi untuk cek Hash SHA-512
function cek_hash_sha512(){
input_hash_sha512
input_file
echo -e "${p}[${b}*${p}] Mengecek Hash SHA-512...${r}"
hash_file=$(sha512sum "${file}" | awk '{print $1}')
if [[ "${hash_sha512}" == "${hash_file}" ]]; then
echo -e "${p}[${h}+${p}] Hash SHA-512 sama.${r}"
exit 0
else
echo -e "${p}[${m}-${p}] Hash Sha-512 tidak sama.${r}"
exit 1
fi
}
# Fungsi untuk cek semua Hash (MD5, SHA-1, SHA-256, SHA512)
function cek_semua_hash(){
input_hash_md5
input_hash_sha1
input_hash_sha256
input_hash_sha512
input_file
hash_file_md5=$(md5sum "${file}" | awk '{print $1}')
hash_file_sha1=$(sha1sum "${file}" | awk '{print $1}')
hash_file_sha256=$(sha256sum "${file}" | awk '{print $1}')
hash_file_sha512=$(sha512sum "${file}" | awk '{print $1}')
hash_sama=()
hash_tidak_sama=()
echo -e "${p}[${b}*${p}] Mengecek semua Hash...${r}"
if [[ "${hash_md5}" == "${hash_file_md5}" ]]; then
echo -e "${p}[${h}+${p}] Hash MD5 sama.${r}"
hash_sama+=("MD5")
else
echo -e "${p}[${m}-${p}] Hash MD5 tidak sama.${r}"
hash_tidak_sama+=("MD5")
fi
if [[ "${hash_sha1}" == "${hash_file_sha1}" ]]; then
echo -e "${p}[${h}+${p}] Hash SHA-1 sama.${r}"
hash_sama+=("SHA-1")
else
echo -e "${p}[${m}-${p}] Hash SHA-1 tidak sama.${r}"
hash_tidak_sama+=("SHA-1")
fi
if [[ "${hash_sha256}" == "${hash_file_sha256}" ]]; then
echo -e "${p}[${h}+${p}] Hash SHA-256 sama.${r}"
hash_sama+=("SHA-256")
else
echo -e "${p}[${m}-${p}] Hash SHA-256 tidak sama.${r}"
hash_tidak_sama+=("SHA-256")
fi
if [[ "${hash_sha512}" == "${hash_file_sha512}" ]]; then
echo -e "${p}[${h}+${p}] Hash SHA-512 sama.${r}"
hash_sama+=("SHA-512")
else
echo -e "${p}[${m}-${p}] Hash SHA-512 tidak sama.${r}"
hash_tidak_sama+=("SHA-512")
fi
if [[ "${#hash_sama[@]}" -eq 4 ]]; then
echo -e "${p}[${h}+${p}] Semua Hash sama.${r}"
exit 0
else
echo -e "${p}[${m}-${p}] Ada Hash yang tidak sama.${r}"
echo ""
for hts in "${hash_tidak_sama[@]}"; do
echo -e "${p}- ${m}${hts}${r}"
done
exit 1
fi
}
# Fungsi main (utama)
function main(){
message="${h}Welcome to Hash Checker\nDibuat oleh${p}: ${h}Rofi ${p}[${h}Fixploit03${p}]${r}"
echo ""
echo -e "${message}"
echo ""
echo -e "${p}+-------------------------------------------------+${r}"
echo -e "${p}| ${b}Script Bash sederhana untuk mengecek nilai Hash ${p}|${r}"
echo -e "${p}| ${b}pada sebuah File ${p}|${r}"
echo -e "${p}+-------------------------------------------------+${r}"
echo ""
echo -e "${k}Daftar Menu${p}:${r}"
echo ""
echo -e "${p}[${k}1${p}] Cek Hash MD5${r}"
echo -e "${p}[${k}2${p}] Cek Hash SHA-1${r}"
echo -e "${p}[${k}3${p}] Cek Hash SHA-256${r}"
echo -e "${p}[${k}4${p}] Cek Hash SHA-512${r}"
echo -e "${p}[${k}5${p}] Cek Semua Hash (${k}MD5${p}, ${k}SHA-1${p}, ${k}SHA-256${p}, ${k}SHA-512${p})${r}"
echo -e "${p}[${k}6${p}] Keluar${r}"
echo ""
while true; do
read -p "${ip}[${ib}#${ip}] Pilih Menu: " pilih_menu
if [[ "${pilih_menu}" == "1" ]]; then
cek_hash_md5
elif [[ "${pilih_menu}" == "2" ]]; then
cek_hash_sha1
elif [[ "${pilih_menu}" == "3" ]]; then
cek_hash_sha256
elif [[ "${pilih_menu}" == "4" ]]; then
cek_hash_sha512
elif [[ "${pilih_menu}" == "5" ]]; then
cek_semua_hash
else
echo -e "${p}[${m}-${p}] Menu tidak tersedia.${r}"
continue
fi
done
}
main