Saya memeriksa hash file menggunakan beberapa algoritma yang berbeda di PowerShell. Ketika saya menggunakan MacTripleDes, saya selalu mendapatkan hash yang berbeda. Semua yang lain, seperti SHA256 atau MD5 selalu memberikan jawaban yang andal. Anda mungkin dapat mereplikasi masalah di komputer Anda sendiri:
"this is a test" | out-file test.txt
get-filehash test.txt -algorithm sha256
get-filehash test.txt -algorithm sha256
get-filehash test.txt -algorithm mactripledes
get-filehash test.txt -algorithm mactripledes
Saya mendapatkan nilai hash yang sama untuk dua hash pertama, tetapi nilai yang berbeda untuk dua hash kedua. Apakah MacTripleDes seharusnya digunakan secara berbeda?
Algorithm Hash Path
--------- ---- ----
SHA256 3F8CB2CDF03347329CAB0C80A6CE3B01EF3B17AF02E0F6E101FA67CE63729F51 C:\temp\test.txt
SHA256 3F8CB2CDF03347329CAB0C80A6CE3B01EF3B17AF02E0F6E101FA67CE63729F51 C:\temp\test.txt
MACTRIPLEDES 904D74A529C7A739 C:\temp\test.txt
MACTRIPLEDES AF720778A2C878A2 C:\temp\test.txt
powershell
hash
pengguna6722022
sumber
sumber
Get-FileHash
cmdlet tidak muncul untuk mendukung parameter kunci.Jawaban:
MACTripleDES berbeda dari algoritma lain yang ditawarkan oleh
Get-FileHash
cmdlet. Saya tidak yakin mengapa itu dimasukkan dalam cmdlet, jujur saja. Itu tidak cocok dengan yang lain, IMO.SHA1, SHA256, MD5, RIPEMD, dll., Semuanya adalah fungsi hash biasa. Mereka mengambil beberapa data dengan panjang sewenang-wenang dan membuat intisari dari panjang tetap yang mewakili data itu. MACTripleDES berbeda, karena bukan hanya algoritma hash. Ini memiliki TripleDES dalam namanya, dan 3DES adalah algoritma enkripsi, bukan algoritma hashing. Perbedaan terbesar antara fungsi hash dan fungsi enkripsi adalah enkripsi dapat dibalik dengan kunci. Hash adalah fungsi satu arah.
Dan MAC adalah kode otentikasi pesan. Ini adalah kode yang digunakan untuk mengotentikasi pesan. Untuk memverifikasi bahwa itu tidak dirusak. MAC dirancang untuk bersifat sementara atau unik dari satu pesan ke pesan berikutnya.
Lihat konstruktor :
StaticRandomNumberGenerator menghasilkan angka acak ... angka acak berarti hasilnya akan berbeda setiap kali dijalankan.
sumber
KeyedHashAlgorithm
objek. Tetapi tidak ada cara untuk melakukan keduanya denganGet-FileHash
...Get-FileHash
tidak memungkinkan Anda menentukan kunci untuk digunakan dan sebagai gantinya menghasilkan kunci acak yang tidak pernah terpapar kepada pengguna, itu tampaknya bug (sesuai dengan judul asli pertanyaan) karena Anda tidak dapat benar-benar menggunakan itu untuk apa saja. (Bukannya saya mengerti mengapa Anda akan memilih MACTripleDES di tempat pertama jika Anda menginginkan MAC.)Get-FileHash
harus berupa RNG yang berbelit-belit?