public void ComputeTest() { var hnull = MD5HashHelper.Compute(null); Assert.IsNull(hnull); var hempty = MD5HashHelper.Compute(Array.Empty <byte>()); Assert.IsNotNull(hempty); Assert.AreEqual(hempty.Length, 32); Assert.AreEqual(hempty, "d41d8cd98f00b204e9800998ecf8427e"); var a1 = new byte[] { 0x00, 0x01, 0x02, 0x03 }; var h1a = MD5HashHelper.Compute(a1); Assert.AreEqual(h1a.Length, 32); Assert.AreEqual(h1a, "37b59afd592725f9305e484a5d7f5168"); var a2 = new byte[] { 0x00, 0x01, 0x02, 0x04 }; var h2a = MD5HashHelper.Compute(a2); Assert.AreEqual(h2a.Length, 32); Assert.AreEqual(h2a, "46c85b65e1a8f4b44d071953c05411c1"); Assert.IsFalse(h2a.Equals(h1a, StringComparison.OrdinalIgnoreCase)); }
private bool CheckLogon() { if (trys++ > 2) { trys = 0; return(false); } Employee employee = new Employee(); employee.Organization_no = PosSettings.Default.Organization; employee.Logon_no = userno.ToString(); employee.LoadByLogon(); //if( employee.Logon_pass.Length == 0 ) //{ // errorCode = PosErrorCode.BAD_USER; // return false; //} if (MD5HashHelper.verifyMd5Hash(passno.ToString(), employee.Logon_pass)) { employee.Relations(); PosContext.Instance.Employee = employee; return(true); } else { errorCode = PosErrorCode.BAD_PASSWORD; return(false); } }
public void CheckForCachedDownloadNode(HttpResponse Response) { if (!hasDownloadNode) { return; } Response.ClearContent(); string md5Hashnode35; md5Hashnode35 = MD5HashHelper.Hash(data); Response.ContentType = contentType; Response.AppendHeader("ETag", "\"" + md5Hashnode35 + "\""); Response.AppendHeader("Content-MD5", md5Hashnode35); Response.AppendHeader("Accept-Ranges", "none"); if (saveOnDisk) { Response.AppendHeader("Content-Disposition", "attachment; filename=" + Regex.Replace(fileName, "^.*/|^.*\\\\|[^a-zA-Z0-9\\._\\-]", "", RegexOptions.Singleline)); } else { Response.AppendHeader("Content-Disposition", "inline; filename=" + Regex.Replace(fileName, "^.*/|^.*\\\\|[^a-zA-Z0-9\\._\\-]", "", RegexOptions.Singleline)); } if (data.Length > 0) { Response.BinaryWrite(data); } Response.End(); }
protected virtual string SerializeViewState(object viewState, out string hash) { ObjectStateFormatter formatter = new ObjectStateFormatter(); var vstate = formatter.Serialize(viewState); hash = MD5HashHelper.HashUsingDefaultEncoding(vstate ?? string.Empty); return(vstate); }
protected virtual object DeserializeViewState(string viewState, out string hash) { ObjectStateFormatter formatter = new ObjectStateFormatter(); hash = MD5HashHelper.HashUsingDefaultEncoding(viewState ?? string.Empty); var result = formatter.Deserialize(viewState); return(result); }
public EncryptUser(int lenght) { this.lenght = lenght; myRSA = new RSA(lenght); hashHelper = new MD5HashHelper(); myRSAMethods = new RSAMethods(lenght); OpenKey = myRSA.GetPublicKey(); CloseKey = myRSA.GetCloseKey(); }
private bool CheckLogon() { if (trys++ > 2) { trys = 0; return(false); } Employee employee = new Employee(); employee.Logon_no = PosContext.Instance.CurrentEmployee.Logon_no; employee.Organization_no = PosSettings.Default.Organization; employee.LoadByLogon(); if (MD5HashHelper.verifyMd5Hash(passno.ToString(), employee.Logon_pass)) { employee.Relations(); PosContext.Instance.Employee = employee; return(true); } else { return(false); } }
/// <summary> /// Returns MD5 hash of filter expression /// </summary> /// <returns>MD5 hash of filter expression</returns> public string GetFilterHash() { var hash = MD5HashHelper.GetHash(new[] { First.GetFilterHash(), Second.GetFilterHash() }); return(Utility.ByteArrayAsHexString(hash)); }
/// <summary> /// Initialize list of modified files / folder for each volume /// </summary> /// <param name="emitFilter"></param> /// <param name="fileAttributeFilter"></param> /// <param name="skipFilesLargerThan"></param> /// <param name="prevJournalData"></param> /// <returns></returns> private Dictionary <string, VolumeData> Initialize(IFilter emitFilter, FileAttributes fileAttributeFilter, long skipFilesLargerThan, IEnumerable <USNJournalDataEntry> prevJournalData) { if (prevJournalData == null) { throw new UsnJournalSoftFailureException(Strings.USNHelper.PreviousBackupNoInfo); } var result = new Dictionary <string, VolumeData>(); // get hash identifying current source filter / sources configuration // ReSharper disable once PossibleMultipleEnumeration var configHash = Utility.Utility.ByteArrayAsHexString(MD5HashHelper.GetHash(new string[] { emitFilter == null ? string.Empty : emitFilter.ToString(), string.Join("; ", m_sources), fileAttributeFilter.ToString(), skipFilesLargerThan.ToString() })); // create lookup for journal data var journalDataDict = prevJournalData.ToDictionary(data => data.Volume); // iterate over volumes foreach (var sourcesPerVolume in SortByVolume(m_sources)) { if (m_token.IsCancellationRequested) { break; } var volume = sourcesPerVolume.Key; var volumeSources = sourcesPerVolume.Value; var volumeData = new VolumeData { Volume = volume, JournalData = null }; result[volume] = volumeData; try { // prepare journal data entry to store with current fileset var journal = new USNJournal(volume); var nextData = new USNJournalDataEntry { Volume = volume, JournalId = journal.JournalId, NextUsn = journal.NextUsn, ConfigHash = configHash }; // add new data to result set volumeData.JournalData = nextData; // only use change journal if: // - journal ID hasn't changed // - nextUsn isn't zero (we use this as magic value to force a rescan) // - the configuration (sources or filters) hasn't changed if (!journalDataDict.TryGetValue(volume, out var prevData)) { throw new UsnJournalSoftFailureException(Strings.USNHelper.PreviousBackupNoInfo); } if (prevData.JournalId != nextData.JournalId) { throw new UsnJournalSoftFailureException(Strings.USNHelper.JournalIdChanged); } if (prevData.NextUsn == 0) { throw new UsnJournalSoftFailureException(Strings.USNHelper.NextUsnZero); } if (prevData.ConfigHash != nextData.ConfigHash) { throw new UsnJournalSoftFailureException(Strings.USNHelper.ConfigHashChanged); } var changedFiles = new HashSet <string>(Utility.Utility.ClientFilenameStringComparer); var changedFolders = new HashSet <string>(Utility.Utility.ClientFilenameStringComparer); // obtain changed files and folders, per volume foreach (var source in volumeSources) { if (m_token.IsCancellationRequested) { break; } foreach (var entry in journal.GetChangedFileSystemEntries(source, prevData.NextUsn)) { if (m_token.IsCancellationRequested) { break; } if (entry.Item2.HasFlag(USNJournal.EntryType.File)) { changedFiles.Add(entry.Item1); } else { changedFolders.Add(Util.AppendDirSeparator(entry.Item1)); } } } // At this point we have: // - a list of folders (changedFolders) that were possibly modified // - a list of files (changedFiles) that were possibly modified // // With this, we need still need to do the following: // // 1. Simplify the folder list, such that it only contains the parent-most entries // (eg. { "C:\A\B\", "C:\A\B\C\", "C:\A\B\D\E\" } => { "C:\A\B\" } volumeData.Folders = Utility.Utility.SimplifyFolderList(changedFolders).ToList(); // 2. Our list of files may contain entries inside one of the simplified folders (from step 1., above). // Since that folder is going to be fully scanned, those files can be removed. // Note: it would be wrong to use the result from step 2. as the folder list! The entries removed // between 1. and 2. are *excluded* folders, and files below them are to be *excluded*, too. volumeData.Files = new HashSet <string>(Utility.Utility.GetFilesNotInFolders(changedFiles, volumeData.Folders)); // Record success for volume volumeData.IsFullScan = false; } catch (Exception e) { // full scan is required this time (eg. due to missing journal entries) volumeData.Exception = e; volumeData.IsFullScan = true; volumeData.Folders = new List <string>(); volumeData.Files = new HashSet <string>(); // use original sources foreach (var path in volumeSources) { var isFolder = path.EndsWith(Util.DirectorySeparatorString, StringComparison.Ordinal); if (isFolder) { volumeData.Folders.Add(path); } else { volumeData.Files.Add(path); } } } } return(result); }