Açıklama
SHA-1 kripto yöntemi, verilen bir datayı 20 byte'lık hash koduna çevirir. Uzun ya da kısa, düz metin ya da binary fark etmez, algoritma her zaman 20 byte (40-digit hex) üretir.
Ödev
JavaScript içinde bu işlemi yapan metodun adı
SubtleCrypto.digest()
: Input data ArrayBuffer
içinde verilir ve (uzun sürmesi muhtemel olduğu için)
yine ArrayBuffer içeren bir Promise alınır. Basit bir
kelimeyi kodlamak bile karmaşık bir dizi komut gerektirir:
//encode string M, then digest it using SHA-1 subtle.digest('SHA-1', new TextEncoder().encode(M)) .then(x=>[...new Uint8Array(x)].map(toHex).join(''))Son iki satırı Console'da yazınca sonuç şöyle:
ff649c648d066c6e9e50c14a4711200f40702801
Kriptografi anlamında 'SHA-1' güvenli (secure) sayılmıyor. Sadece dosyaların "Yanlışlıkla değişmediğini" gösteren bir sağlama yöntemi olarak Git ve benzeri sistemlerde kullanılıyor. Kullanıcı şifrelerini kaydetmek için de iyi bir yöntem.
Algoritmayı OS içinden de kullanmak mümkün. Sistemde sha1sum komutu standard yüklü olmalı, değilse fciv.exe gibi bir yazılım indirmek gerekebilir.