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
- BulletedList.cs
- DummyDataSource.cs
- ReadOnlyNameValueCollection.cs
- UInt32Storage.cs
- MeasureItemEvent.cs
- ThreadAttributes.cs
- DataGridViewCellContextMenuStripNeededEventArgs.cs
- IdentifierCollection.cs
- ExtensionFile.cs
- DataMisalignedException.cs
- WeakReferenceKey.cs
- ThousandthOfEmRealDoubles.cs
- MustUnderstandBehavior.cs
- ElapsedEventArgs.cs
- ToolTipService.cs
- ExpressionVisitor.cs
- TableDetailsCollection.cs
- XamlReaderHelper.cs
- SelectionItemPattern.cs
- GroupBoxRenderer.cs
- RootBrowserWindowProxy.cs
- Underline.cs
- ColumnCollection.cs
- SpellCheck.cs
- KerberosRequestorSecurityToken.cs
- PeerPresenceInfo.cs
- Table.cs
- DbConnectionPoolGroupProviderInfo.cs
- SqlTypeSystemProvider.cs
- ToolBarPanel.cs
- DataColumnMappingCollection.cs
- CanonicalFormWriter.cs
- XamlWriter.cs
- UserControlCodeDomTreeGenerator.cs
- BoundField.cs
- RayHitTestParameters.cs
- XmlSchemaExporter.cs
- WorkflowRuntimeServiceElement.cs
- IsolationInterop.cs
- XhtmlBasicCalendarAdapter.cs
- ColorMatrix.cs
- PKCS1MaskGenerationMethod.cs
- AuthorizationSection.cs
- GridViewColumnHeaderAutomationPeer.cs
- NameValueCollection.cs
- ThemeInfoAttribute.cs
- ContentValidator.cs
- LabelAutomationPeer.cs
- CompiledQueryCacheEntry.cs
- ItemMap.cs
- FormParameter.cs
- baseaxisquery.cs
- BrowsableAttribute.cs
- SettingsPropertyValue.cs
- DBAsyncResult.cs
- MappingSource.cs
- CellRelation.cs
- TileModeValidation.cs
- ConfigXmlCDataSection.cs
- FileLoadException.cs
- Operators.cs
- Transform3DCollection.cs
- CommentAction.cs
- XmlName.cs
- ColumnHeaderCollectionEditor.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- ObservableCollection.cs
- Switch.cs
- WeakReferenceEnumerator.cs
- PageCatalogPart.cs
- MSG.cs
- WindowsListBox.cs
- FlowLayout.cs
- ViewValidator.cs
- Volatile.cs
- HttpListenerException.cs
- ValidationManager.cs
- DataGridPagerStyle.cs
- TargetControlTypeCache.cs
- AuthenticationService.cs
- SkinBuilder.cs
- Block.cs
- XmlNodeList.cs
- OracleSqlParser.cs
- ResourceProviderFactory.cs
- InfoCardKeyedHashAlgorithm.cs
- MetadataItemCollectionFactory.cs
- SectionRecord.cs
- SystemWebCachingSectionGroup.cs
- SqlParameterizer.cs
- MsiStyleLogWriter.cs
- DataSourceXmlAttributeAttribute.cs
- DWriteFactory.cs
- EntityDataSourceState.cs
- MustUnderstandBehavior.cs
- BuildResult.cs
- OleDbCommandBuilder.cs
- MsmqInputSessionChannel.cs
- SmiEventSink_Default.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs