Reference

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.