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
| function fa03_fichier_sha1(vv_fichier) {
// piqué ici : http://developer.mozilla.org/en/docs/nsICryptoHash
try {
netscape.security.PrivilegeManager.enablePrivilege(XPC);
} catch (e) {
alert("Vous n'avez pas l\'autorisation de lire des fichiers!!");
return null;
}
var path = vv_fichier;
var f = Components.classes[FL].createInstance(nsiLocalFile);
f.initWithPath(path);
var istream = Components.classes[FINPUT].createInstance(nsIFileInputStream);
istream.init(f, 0x01, 0444,Components.interfaces.nsIFileInputStream.CLOSE_ON_EOF);
var ch = Components.classes[HASH].createInstance(nsICryptoHash);
ch.init(ch.SHA1);
const PR_UINT32_MAX = 0xffffffff;
ch.updateFromStream(istream, PR_UINT32_MAX);
var hash = ch.finish(false);
var s = [fa03_toHexString(hash.charCodeAt(i)) for (i in hash)].join("");
return s;
}
function fa03_toHexString(charCode) {
return ("0" + charCode.toString(16)).slice(-2);
} |
Partager