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
- DesignTimeVisibleAttribute.cs
- TimeoutValidationAttribute.cs
- EditorAttribute.cs
- HttpResponse.cs
- HotSpot.cs
- WebPartDescriptionCollection.cs
- DbUpdateCommandTree.cs
- SessionIDManager.cs
- CrossSiteScriptingValidation.cs
- PriorityItem.cs
- DataObjectFieldAttribute.cs
- SystemColors.cs
- AuthorizationRule.cs
- MenuCommands.cs
- MethodResolver.cs
- KnowledgeBase.cs
- DbProviderFactoriesConfigurationHandler.cs
- ItemCheckedEvent.cs
- WebAdminConfigurationHelper.cs
- SingleSelectRootGridEntry.cs
- SafeNativeMethodsOther.cs
- HttpResponse.cs
- ConfigurationElementProperty.cs
- ItemAutomationPeer.cs
- GlobalItem.cs
- EUCJPEncoding.cs
- AddingNewEventArgs.cs
- SqlDataSourceFilteringEventArgs.cs
- CompilerCollection.cs
- QilList.cs
- MSHTMLHostUtil.cs
- recordstatescratchpad.cs
- XPathChildIterator.cs
- EdmProviderManifest.cs
- DesignerView.xaml.cs
- EdmComplexPropertyAttribute.cs
- NullableDoubleMinMaxAggregationOperator.cs
- ListViewGroup.cs
- BrushMappingModeValidation.cs
- BinaryQueryOperator.cs
- DLinqAssociationProvider.cs
- SafeBitVector32.cs
- HwndPanningFeedback.cs
- CapacityStreamGeometryContext.cs
- Decoder.cs
- wmiprovider.cs
- MaskInputRejectedEventArgs.cs
- WebPartVerb.cs
- PageContentAsyncResult.cs
- DesignColumnCollection.cs
- NetworkInformationException.cs
- DataGridSortingEventArgs.cs
- Column.cs
- FixedSOMPageConstructor.cs
- ResourceSetExpression.cs
- __FastResourceComparer.cs
- GuidTagList.cs
- ImageMap.cs
- OracleColumn.cs
- ToolStripItemCollection.cs
- InstanceDataCollection.cs
- PixelFormatConverter.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- BindingParameterCollection.cs
- Scene3D.cs
- XmlAggregates.cs
- CloudCollection.cs
- Encoder.cs
- InheritablePropertyChangeInfo.cs
- CodeDirectionExpression.cs
- WaitForChangedResult.cs
- Span.cs
- AssociationSetMetadata.cs
- ChameleonKey.cs
- PageParserFilter.cs
- MailSettingsSection.cs
- OneToOneMappingSerializer.cs
- BaseDataListDesigner.cs
- TraceContextEventArgs.cs
- MessageDesigner.cs
- ControlDesigner.cs
- BadImageFormatException.cs
- ViewEventArgs.cs
- ReceiveActivityValidator.cs
- Collection.cs
- DataErrorValidationRule.cs
- AsymmetricCryptoHandle.cs
- processwaithandle.cs
- TrustLevelCollection.cs
- ListViewItem.cs
- CommandDevice.cs
- OptimizedTemplateContent.cs
- DefaultParameterValueAttribute.cs
- DBConnection.cs
- UserControlDesigner.cs
- XmlCharacterData.cs
- DefaultBindingPropertyAttribute.cs
- WebPartHelpVerb.cs
- Decimal.cs
- DesignerRegionCollection.cs