Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / Xml / System / Xml / Core / SecureStringHasher.cs / 2 / 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
- Rectangle.cs
- LineServicesCallbacks.cs
- TextShapeableCharacters.cs
- DataSourceBooleanViewSchemaConverter.cs
- EtwTrace.cs
- HiddenFieldDesigner.cs
- TypeBuilderInstantiation.cs
- ExceptionRoutedEventArgs.cs
- ArrayItemReference.cs
- NativeMethods.cs
- ParserExtension.cs
- ObjectViewQueryResultData.cs
- DoubleCollectionConverter.cs
- ReservationNotFoundException.cs
- ColorEditor.cs
- AssemblyNameProxy.cs
- Menu.cs
- ValidationSummaryDesigner.cs
- MetadataStore.cs
- Page.cs
- RowCache.cs
- CommonRemoteMemoryBlock.cs
- FillErrorEventArgs.cs
- _LazyAsyncResult.cs
- InternalConfigRoot.cs
- COM2Properties.cs
- TextMessageEncodingElement.cs
- XmlDocumentSerializer.cs
- ComponentCache.cs
- WizardForm.cs
- RectConverter.cs
- RegisteredDisposeScript.cs
- PermissionListSet.cs
- VariableQuery.cs
- SqlMethods.cs
- OneOf.cs
- ControlDesigner.cs
- LogicalExpr.cs
- PerfCounterSection.cs
- PartialCachingAttribute.cs
- DataServiceHostFactory.cs
- FormsAuthenticationConfiguration.cs
- EdmItemError.cs
- UserMapPath.cs
- PageAsyncTaskManager.cs
- PrimitiveSchema.cs
- StringUtil.cs
- HiddenFieldDesigner.cs
- SchemaObjectWriter.cs
- ISAPIWorkerRequest.cs
- shaperfactoryquerycacheentry.cs
- DispatchProxy.cs
- Operators.cs
- NativeMethods.cs
- WorkflowClientDeliverMessageWrapper.cs
- PageThemeBuildProvider.cs
- UInt16.cs
- ArraySegment.cs
- PositiveTimeSpanValidator.cs
- QilIterator.cs
- securestring.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- RecordManager.cs
- DictionaryContent.cs
- SqlDataSourceConfigureSelectPanel.cs
- SolidBrush.cs
- SqlNodeAnnotations.cs
- OptimizedTemplateContent.cs
- Column.cs
- SqlProviderUtilities.cs
- XmlElementList.cs
- MonitorWrapper.cs
- xml.cs
- SimpleParser.cs
- MsmqIntegrationProcessProtocolHandler.cs
- ProjectionPruner.cs
- OdbcConnection.cs
- MessageDecoder.cs
- CaseInsensitiveOrdinalStringComparer.cs
- ToolStripButton.cs
- NegationPusher.cs
- ReadOnlyCollectionBase.cs
- ImageDrawing.cs
- MasterPage.cs
- RequestResizeEvent.cs
- SlotInfo.cs
- AlternateViewCollection.cs
- BitmapEffectDrawingContextWalker.cs
- SqlMetaData.cs
- StringValidator.cs
- EventListenerClientSide.cs
- GenerateHelper.cs
- BaseTemplateCodeDomTreeGenerator.cs
- FakeModelItemImpl.cs
- ClonableStack.cs
- CryptoProvider.cs
- DropAnimation.xaml.cs
- Drawing.cs
- AspNetPartialTrustHelpers.cs
- SqlAliasesReferenced.cs