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
- FaultPropagationQuery.cs
- RuleSetReference.cs
- FileVersion.cs
- GridToolTip.cs
- RotateTransform.cs
- Switch.cs
- SetUserLanguageRequest.cs
- AccessControlEntry.cs
- SharedStatics.cs
- InternalSafeNativeMethods.cs
- DesignerAutoFormatStyle.cs
- Property.cs
- EntityWrapper.cs
- LOSFormatter.cs
- ShortcutKeysEditor.cs
- CompleteWizardStep.cs
- ListViewDesigner.cs
- ZipPackage.cs
- WorkflowServiceHost.cs
- EditorServiceContext.cs
- SiteMapProvider.cs
- CodePageUtils.cs
- SmiEventSink_Default.cs
- uribuilder.cs
- ImageCollectionCodeDomSerializer.cs
- ServiceReference.cs
- ProfilePropertyMetadata.cs
- RectAnimation.cs
- ConditionalExpression.cs
- RsaSecurityKey.cs
- ContextMenuStrip.cs
- ComplexTypeEmitter.cs
- RegisteredExpandoAttribute.cs
- WindowsListViewGroup.cs
- HtmlElementCollection.cs
- ActionFrame.cs
- PeerUnsafeNativeMethods.cs
- NonParentingControl.cs
- SecurityException.cs
- ToolBarOverflowPanel.cs
- WebPartExportVerb.cs
- Compiler.cs
- KeyedHashAlgorithm.cs
- LinqDataSourceDeleteEventArgs.cs
- SegmentInfo.cs
- SchemaContext.cs
- CommandEventArgs.cs
- EntityDataSourceValidationException.cs
- ExpressionBindingCollection.cs
- StylusPlugin.cs
- AmbientValueAttribute.cs
- PropertyRecord.cs
- WebBrowserEvent.cs
- TabControl.cs
- _CookieModule.cs
- OLEDB_Enum.cs
- _UncName.cs
- Rotation3D.cs
- NonBatchDirectoryCompiler.cs
- EmptyStringExpandableObjectConverter.cs
- PrePrepareMethodAttribute.cs
- EntityDataSourceStatementEditorForm.cs
- SchemaImporterExtension.cs
- Char.cs
- PreDigestedSignedInfo.cs
- Span.cs
- XmlSchemaCollection.cs
- TableItemProviderWrapper.cs
- EdmToObjectNamespaceMap.cs
- QueryCursorEventArgs.cs
- GridViewCommandEventArgs.cs
- _NetworkingPerfCounters.cs
- NamespaceEmitter.cs
- SpotLight.cs
- IndexingContentUnit.cs
- TypeResolvingOptions.cs
- DataExpression.cs
- ICspAsymmetricAlgorithm.cs
- KeyValueConfigurationElement.cs
- EntityDescriptor.cs
- HuffCodec.cs
- DataSourceSelectArguments.cs
- TextDecoration.cs
- XmlNotation.cs
- CompoundFileDeflateTransform.cs
- NativeMethodsCLR.cs
- BitVector32.cs
- DataGridViewRowsAddedEventArgs.cs
- SystemSounds.cs
- DataGridViewColumnCollection.cs
- Vector3DAnimationBase.cs
- FontStyleConverter.cs
- ScriptDescriptor.cs
- FixedHighlight.cs
- SchemaImporterExtensionElement.cs
- FileFormatException.cs
- ItemCheckedEvent.cs
- SaveLedgerEntryRequest.cs
- EntityDataSourceSelectedEventArgs.cs
- ProfilePropertySettings.cs