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
- SafeEventLogReadHandle.cs
- BamlStream.cs
- EditorBrowsableAttribute.cs
- SQLConvert.cs
- VirtualPathProvider.cs
- Html32TextWriter.cs
- TypeValidationEventArgs.cs
- DummyDataSource.cs
- Calendar.cs
- DirectoryObjectSecurity.cs
- ControlPaint.cs
- DeviceFilterEditorDialog.cs
- IERequestCache.cs
- ValidationEventArgs.cs
- EnumMemberAttribute.cs
- DebugInfo.cs
- ColorMatrix.cs
- MachineKeySection.cs
- DtdParser.cs
- ExecutionPropertyManager.cs
- Function.cs
- UInt32.cs
- ClientData.cs
- UserUseLicenseDictionaryLoader.cs
- WebPartConnectionCollection.cs
- Misc.cs
- QilValidationVisitor.cs
- GridPattern.cs
- DataGridViewColumn.cs
- IisTraceWebEventProvider.cs
- WindowsImpersonationContext.cs
- SimpleHandlerFactory.cs
- XmlSchemaComplexContent.cs
- _CommandStream.cs
- Cursor.cs
- DataGridAddNewRow.cs
- CorrelationManager.cs
- XmlSchemaAttributeGroupRef.cs
- AssemblyName.cs
- DataSetFieldSchema.cs
- _NegotiateClient.cs
- BoundPropertyEntry.cs
- DataGridViewElement.cs
- PathSegment.cs
- WmfPlaceableFileHeader.cs
- WebBrowser.cs
- ModelToObjectValueConverter.cs
- ProviderUtil.cs
- ScheduleChanges.cs
- CryptoStream.cs
- InputBinder.cs
- Queue.cs
- DbMetaDataCollectionNames.cs
- BufferBuilder.cs
- DateRangeEvent.cs
- ListViewItem.cs
- QuerySafeNavigator.cs
- SerializationBinder.cs
- DbMetaDataColumnNames.cs
- DocumentSequence.cs
- SequenceRangeCollection.cs
- RequestCacheValidator.cs
- PtsContext.cs
- AllMembershipCondition.cs
- BamlResourceContent.cs
- SemanticAnalyzer.cs
- WindowsComboBox.cs
- TreeNodeBinding.cs
- EdmEntityTypeAttribute.cs
- HandlerFactoryCache.cs
- MdiWindowListItemConverter.cs
- EventLogReader.cs
- DefaultParameterValueAttribute.cs
- ObjectAnimationBase.cs
- ExpressionEditorSheet.cs
- Activity.cs
- XmlBinaryReader.cs
- ElementUtil.cs
- CompressedStack.cs
- CodeMemberProperty.cs
- Ipv6Element.cs
- CachedBitmap.cs
- FormsAuthenticationModule.cs
- ToolStripComboBox.cs
- SmtpReplyReader.cs
- ItemAutomationPeer.cs
- HtmlGenericControl.cs
- BamlLocalizer.cs
- SettingsBase.cs
- QilFactory.cs
- AssociationTypeEmitter.cs
- Utilities.cs
- DSACryptoServiceProvider.cs
- Timeline.cs
- ImageAnimator.cs
- XmlSerializationWriter.cs
- StorageRoot.cs
- DesignRelation.cs
- EntitySqlQueryState.cs
- ControlTemplate.cs