Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Xml / System / Xml / Core / SecureStringHasher.cs / 1 / 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; } public SecureStringHasher( int hashCodeRandomizer ) { this.hashCodeRandomizer = hashCodeRandomizer; } public int Compare( String x, String y ) { return String.Compare(x, y, StringComparison.Ordinal); } 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. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ExpressionParser.cs
- UserValidatedEventArgs.cs
- DataSourceCache.cs
- XmlSignificantWhitespace.cs
- _AcceptOverlappedAsyncResult.cs
- SimpleNameService.cs
- WindowsSecurityTokenAuthenticator.cs
- SafeFileMappingHandle.cs
- BeginStoryboard.cs
- EventHandlers.cs
- KeyValueConfigurationCollection.cs
- ActivityCompletionCallbackWrapper.cs
- OrderablePartitioner.cs
- TemplateControlCodeDomTreeGenerator.cs
- SchemaImporterExtensionElement.cs
- ProjectionCamera.cs
- FileUpload.cs
- Endpoint.cs
- TagMapCollection.cs
- Int16AnimationUsingKeyFrames.cs
- ObjectViewListener.cs
- FixedTextSelectionProcessor.cs
- BaseParser.cs
- SharedUtils.cs
- DataGridViewComboBoxEditingControl.cs
- DetailsViewPageEventArgs.cs
- infer.cs
- CodeChecksumPragma.cs
- Mappings.cs
- LoginView.cs
- ParameterRefs.cs
- FormViewAutoFormat.cs
- SymLanguageVendor.cs
- BinaryExpression.cs
- LeftCellWrapper.cs
- AnnotationAdorner.cs
- DBCommandBuilder.cs
- ClientTarget.cs
- DataKeyArray.cs
- ListViewItemEventArgs.cs
- columnmapkeybuilder.cs
- AlphaSortedEnumConverter.cs
- LinearGradientBrush.cs
- UnhandledExceptionEventArgs.cs
- DataGridViewAutoSizeModeEventArgs.cs
- TextDecoration.cs
- AttributeUsageAttribute.cs
- TreeView.cs
- WindowsScroll.cs
- HostingEnvironmentException.cs
- PrimaryKeyTypeConverter.cs
- TextDecorationCollection.cs
- SystemDropShadowChrome.cs
- ErrorTolerantObjectWriter.cs
- ServicePoint.cs
- DesignTableCollection.cs
- HwndPanningFeedback.cs
- FormClosedEvent.cs
- NumberSubstitution.cs
- SemanticValue.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- RoleBoolean.cs
- ProcessingInstructionAction.cs
- LoaderAllocator.cs
- FlowPosition.cs
- DrawingContext.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- XPathNodeHelper.cs
- Int16AnimationBase.cs
- SchemaDeclBase.cs
- ForEachAction.cs
- ItemCheckedEvent.cs
- ReadOnlyDictionary.cs
- AutomationEvent.cs
- TextRenderer.cs
- IdnMapping.cs
- ServicePoint.cs
- SessionParameter.cs
- TreeViewItem.cs
- Compilation.cs
- HtmlAnchor.cs
- TableLayoutCellPaintEventArgs.cs
- SharedConnectionListener.cs
- ContainerUIElement3D.cs
- OrthographicCamera.cs
- OledbConnectionStringbuilder.cs
- Delay.cs
- Vector.cs
- xmlfixedPageInfo.cs
- EventLogger.cs
- DataGridRow.cs
- APCustomTypeDescriptor.cs
- Attribute.cs
- _SslSessionsCache.cs
- DTCTransactionManager.cs
- PathGeometry.cs
- KeyMatchBuilder.cs
- DocumentSequence.cs
- PartialTrustVisibleAssemblyCollection.cs
- HttpRequestWrapper.cs