Code:
/ FX-1434 / FX-1434 / 1.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
- XmlParserContext.cs
- SystemIcmpV4Statistics.cs
- ModelPropertyCollectionImpl.cs
- PenContexts.cs
- XmlSyndicationContent.cs
- ServiceDeploymentInfo.cs
- InvalidComObjectException.cs
- TemplateContentLoader.cs
- SynchronizationFilter.cs
- EndEvent.cs
- WebPartConnectionsConnectVerb.cs
- DefaultPropertyAttribute.cs
- EnumValidator.cs
- PathFigureCollection.cs
- DataGridColumn.cs
- StreamGeometry.cs
- AliasedSlot.cs
- MethodCallConverter.cs
- RenamedEventArgs.cs
- SafeRightsManagementSessionHandle.cs
- XmlQueryType.cs
- MissingManifestResourceException.cs
- BitmapEncoder.cs
- Registry.cs
- MenuCommands.cs
- CompilerError.cs
- ConditionCollection.cs
- InfoCardBaseException.cs
- SqlRowUpdatedEvent.cs
- BStrWrapper.cs
- CurrentChangingEventArgs.cs
- SecurityUtils.cs
- SimplePropertyEntry.cs
- OleAutBinder.cs
- TraceContextRecord.cs
- ProjectionQueryOptionExpression.cs
- TypeToken.cs
- BaseDataList.cs
- SecurityCookieModeValidator.cs
- RIPEMD160.cs
- StorageEntityContainerMapping.cs
- Panel.cs
- CodeIdentifiers.cs
- ImplicitInputBrush.cs
- WarningException.cs
- Listbox.cs
- TemplateBindingExtension.cs
- TraceProvider.cs
- ValidationRuleCollection.cs
- XPathNode.cs
- WebPartManagerInternals.cs
- DependencyPropertyValueSerializer.cs
- AnnotationService.cs
- SettingsContext.cs
- thaishape.cs
- SqlCommandSet.cs
- UpdatePanelTrigger.cs
- XPathParser.cs
- ApplicationException.cs
- SettingsPropertyValueCollection.cs
- ItemList.cs
- SafeNativeMethodsCLR.cs
- GlobalizationSection.cs
- _SslStream.cs
- WebEventTraceProvider.cs
- WhitespaceRuleReader.cs
- SqlStatistics.cs
- AutomationPatternInfo.cs
- TraceHwndHost.cs
- GridViewEditEventArgs.cs
- TypeResolver.cs
- ResourceWriter.cs
- SiteMapNodeItem.cs
- XmlValidatingReaderImpl.cs
- DbConnectionFactory.cs
- ExeConfigurationFileMap.cs
- GradientStop.cs
- UriTemplateEquivalenceComparer.cs
- CharAnimationBase.cs
- WebRequest.cs
- ExpressionList.cs
- DataSourceCacheDurationConverter.cs
- WindowsUpDown.cs
- EndEvent.cs
- CancellationTokenRegistration.cs
- EntityDataSource.cs
- DetailsViewInsertEventArgs.cs
- XamlPathDataSerializer.cs
- PageBuildProvider.cs
- ObjectSet.cs
- ConnectionManagementElement.cs
- httpstaticobjectscollection.cs
- RelationshipConverter.cs
- SystemNetworkInterface.cs
- ImageCodecInfo.cs
- NumericUpDown.cs
- _OverlappedAsyncResult.cs
- InvalidProgramException.cs
- UiaCoreTypesApi.cs
- DataGridRow.cs