// crudwork // Copyright 2004 by Steve T. Pham (http://www.crudwork.com) // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with This program. If not, see <http://www.gnu.org/licenses/>. using System; using System.Text; using System.IO; namespace MesExemples.Securités { public static class MathUtil { // Calculer le Checksum de 'buffer' passé en paramètre public static long ComputeChecksum(byte[] buffer) { return ComputeChecksum(buffer, 0); } // Calculer le checksum de 'buffer' passé en paramètre à partr de l'index 'décalage' public static long ComputeChecksum(byte[] buffer, int décalage) { long sum = 0; for (int i = 0; i < buffer.Length; i++) { sum += buffer[i] * (i + 1 + décalage); } return sum; } // Calculer le checksum d'un fichier public static long ComputeChecksum(string nomFichier) { long sum = 0; int bufSize = 4096; using (FileStream fs = new FileStream(nomFichier, FileMode.Open, FileAccess.Read)) using (BinaryReader r = new BinaryReader(fs)) { byte[] readChar = null; int décalage = 0; do { // Lire les caractères readChar = r.ReadBytes(bufSize); sum += ComputeChecksum(readChar, décalage); décalage += readChar.Length; } while ((readChar != null) && (readChar.Length > 0)); r.Close(); } return sum; } } } |
0
Calculer le Checksum d’un ‘tempon’
C# Codeur
No comments yet.