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