Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / Core / SecureStringHasher.cs / 1305376 / 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; } #if false // This is here only for debugging of hashing issues public SecureStringHasher( int hashCodeRandomizer ) { this.hashCodeRandomizer = hashCodeRandomizer; } #endif 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FunctionDescription.cs
- XPathMultyIterator.cs
- InfiniteTimeSpanConverter.cs
- PathSegmentCollection.cs
- SubpageParaClient.cs
- XmlSchemaSimpleContentExtension.cs
- ContentValidator.cs
- MemberHolder.cs
- FileStream.cs
- SqlDataSourceCustomCommandEditor.cs
- BlockExpression.cs
- PageContent.cs
- SaveFileDialog.cs
- DataObjectCopyingEventArgs.cs
- SqlRewriteScalarSubqueries.cs
- Exceptions.cs
- SQLByteStorage.cs
- AsymmetricKeyExchangeDeformatter.cs
- Permission.cs
- CodeTypeParameter.cs
- PropertyValueUIItem.cs
- TemplateControlParser.cs
- SimpleBitVector32.cs
- Cursors.cs
- Part.cs
- OutputCacheSettingsSection.cs
- IsolationInterop.cs
- ContractUtils.cs
- HttpStreamFormatter.cs
- ObsoleteAttribute.cs
- DBAsyncResult.cs
- DataTablePropertyDescriptor.cs
- ADRoleFactory.cs
- PipelineModuleStepContainer.cs
- BufferModeSettings.cs
- FilterElement.cs
- ReliabilityContractAttribute.cs
- ToolstripProfessionalRenderer.cs
- SendMailErrorEventArgs.cs
- PersistencePipeline.cs
- WpfPayload.cs
- StatusBarDrawItemEvent.cs
- PropertyHelper.cs
- ResourceDisplayNameAttribute.cs
- WorkflowServiceHostFactory.cs
- TableLayoutStyleCollection.cs
- SqlCacheDependencyDatabaseCollection.cs
- KeyEventArgs.cs
- PhonemeConverter.cs
- CodeObject.cs
- IdleTimeoutMonitor.cs
- Panel.cs
- MetadataLocation.cs
- ToolStripOverflowButton.cs
- RoamingStoreFileUtility.cs
- DetailsViewPagerRow.cs
- XmlILAnnotation.cs
- MediaTimeline.cs
- DataGridViewCell.cs
- EntityDataSourceDesigner.cs
- XmlSchemaSimpleTypeList.cs
- _ListenerResponseStream.cs
- CriticalFinalizerObject.cs
- HtmlElement.cs
- DurableRuntimeValidator.cs
- EncodingNLS.cs
- EntityRecordInfo.cs
- MembershipAdapter.cs
- StreamAsIStream.cs
- SafeNativeMethods.cs
- MimePart.cs
- Size3DConverter.cs
- XmlSchemaSimpleType.cs
- CommandManager.cs
- InteropBitmapSource.cs
- WrapperEqualityComparer.cs
- GraphicsContainer.cs
- IPHostEntry.cs
- PriorityBinding.cs
- X509PeerCertificateElement.cs
- WinInet.cs
- DispatcherTimer.cs
- NameSpaceExtractor.cs
- SequenceDesigner.cs
- LoginName.cs
- EnvironmentPermission.cs
- DataPagerFieldCollection.cs
- RC2CryptoServiceProvider.cs
- CustomExpressionEventArgs.cs
- HtmlContainerControl.cs
- SymbolPair.cs
- BaseAsyncResult.cs
- ViewCellSlot.cs
- IconConverter.cs
- ConnectionString.cs
- BookmarkInfo.cs
- DataGridCellsPresenter.cs
- SetterBase.cs
- FloatAverageAggregationOperator.cs
- RtfToken.cs