Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / Core / SecureStringHasher.cs / 1305376 / SecureStringHasher.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- using System; using System.Collections.Generic; namespace System.Xml { // SecureStringHasher is a hash code provider for strings. The hash codes calculation starts with a seed (hasCodeRandomizer) which is usually // different for each instance of SecureStringHasher. Since the hash code depend on the seed, the chance of hashtable DoS attack in case when // someone passes in lots of strings that hash to the same hash code is greatly reduced. // The SecureStringHasher implements IEqualityComparer for strings and therefore can be used in generic IDictionary. internal class SecureStringHasher : IEqualityComparer{ int hashCodeRandomizer; public SecureStringHasher() { this.hashCodeRandomizer = Environment.TickCount; } #if false // This is here only for debugging of hashing issues public SecureStringHasher( int hashCodeRandomizer ) { this.hashCodeRandomizer = hashCodeRandomizer; } #endif public bool Equals( String x, String y ) { return String.Equals( x, y, StringComparison.Ordinal ); } public int GetHashCode( String key ) { int hashCode = hashCodeRandomizer; // use key.Length to eliminate the rangecheck for ( int i = 0; i < key.Length; i++ ) { hashCode += ( hashCode << 7 ) ^ key[i]; } // mix it a bit more hashCode -= hashCode >> 17; hashCode -= hashCode >> 11; hashCode -= hashCode >> 5; return hashCode; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FieldAccessException.cs
- PropertyConverter.cs
- CuspData.cs
- BoundColumn.cs
- DivideByZeroException.cs
- MaxMessageSizeStream.cs
- XmlBinaryReader.cs
- DataGridViewCellStyleChangedEventArgs.cs
- MapPathBasedVirtualPathProvider.cs
- InputManager.cs
- HandlerFactoryCache.cs
- Condition.cs
- Subtree.cs
- ValueProviderWrapper.cs
- TrackingWorkflowEventArgs.cs
- FileSystemWatcher.cs
- ComponentCommands.cs
- InteropBitmapSource.cs
- ProviderCollection.cs
- XMLSyntaxException.cs
- TCPClient.cs
- StrokeNodeData.cs
- QilPatternFactory.cs
- ExpressionNormalizer.cs
- DataGridViewAutoSizeModeEventArgs.cs
- DrawItemEvent.cs
- parserscommon.cs
- SqlClientWrapperSmiStream.cs
- TextParentUndoUnit.cs
- HttpBrowserCapabilitiesBase.cs
- HttpException.cs
- BindingBase.cs
- CompilerGlobalScopeAttribute.cs
- TimersDescriptionAttribute.cs
- ContextConfiguration.cs
- BoolLiteral.cs
- Listener.cs
- XPathLexer.cs
- XmlUtilWriter.cs
- Switch.cs
- SettingsPropertyValue.cs
- ICollection.cs
- GetImportFileNameRequest.cs
- MenuCommand.cs
- Binding.cs
- TextEvent.cs
- VirtualizingStackPanel.cs
- CommandEventArgs.cs
- VirtualPathUtility.cs
- TextServicesContext.cs
- ZipIOExtraFieldZip64Element.cs
- ShellProvider.cs
- UserControlCodeDomTreeGenerator.cs
- CodePrimitiveExpression.cs
- ObjectSecurity.cs
- WhitespaceRuleLookup.cs
- RTLAwareMessageBox.cs
- Funcletizer.cs
- DocumentOrderQuery.cs
- coordinator.cs
- AttributedMetaModel.cs
- ComContractElementCollection.cs
- ItemCheckEvent.cs
- EmissiveMaterial.cs
- FunctionUpdateCommand.cs
- TPLETWProvider.cs
- DataAdapter.cs
- EdmMember.cs
- MemberAccessException.cs
- bidPrivateBase.cs
- IntegrationExceptionEventArgs.cs
- BuildManagerHost.cs
- ObjectStorage.cs
- SecureStringHasher.cs
- PackUriHelper.cs
- HealthMonitoringSectionHelper.cs
- PropertyKey.cs
- EditorPart.cs
- ParagraphVisual.cs
- DynamicDataRouteHandler.cs
- CodeGenerationManager.cs
- CodeCommentStatement.cs
- ISSmlParser.cs
- HttpListenerPrefixCollection.cs
- HttpApplicationFactory.cs
- TableRowsCollectionEditor.cs
- ColumnClickEvent.cs
- Button.cs
- ExecutedRoutedEventArgs.cs
- UriTemplateLiteralQueryValue.cs
- BamlRecordWriter.cs
- UnknownWrapper.cs
- NameNode.cs
- wmiprovider.cs
- ConfigXmlText.cs
- DesigntimeLicenseContextSerializer.cs
- GridViewSelectEventArgs.cs
- APCustomTypeDescriptor.cs
- CodeLinePragma.cs
- HwndSourceKeyboardInputSite.cs