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
- DataServiceRequest.cs
- ParameterRetriever.cs
- TextCharacters.cs
- AttributeData.cs
- StaticExtensionConverter.cs
- CSharpCodeProvider.cs
- basecomparevalidator.cs
- VariableQuery.cs
- WebPartTransformerCollection.cs
- SafeCoTaskMem.cs
- PersonalizationProviderCollection.cs
- ObjectContextServiceProvider.cs
- XmlSchemaInferenceException.cs
- StoreConnection.cs
- UnmanagedBitmapWrapper.cs
- ListViewHitTestInfo.cs
- BaseCAMarshaler.cs
- ContractMapping.cs
- ExpandCollapseProviderWrapper.cs
- TemplateControlParser.cs
- Page.cs
- CompilationRelaxations.cs
- TraceSource.cs
- ObjectStateFormatter.cs
- HTTPAPI_VERSION.cs
- ContentElement.cs
- DataGridRow.cs
- Trigger.cs
- SyndicationFeedFormatter.cs
- Run.cs
- Wizard.cs
- ConfigXmlAttribute.cs
- ListBase.cs
- ObjectSecurity.cs
- DateTime.cs
- RSAPKCS1SignatureFormatter.cs
- DispatcherHookEventArgs.cs
- TraceSection.cs
- MD5CryptoServiceProvider.cs
- Console.cs
- UpdatePanelTriggerCollection.cs
- BindableTemplateBuilder.cs
- documentsequencetextcontainer.cs
- RoleGroupCollectionEditor.cs
- TrustSection.cs
- XPathDocument.cs
- SemanticBasicElement.cs
- FormattedText.cs
- CustomAttributeBuilder.cs
- ProgressBar.cs
- HwndSource.cs
- WindowsAuthenticationModule.cs
- MimeXmlReflector.cs
- CreateUserErrorEventArgs.cs
- DataRowCollection.cs
- PublishLicense.cs
- HtmlHead.cs
- AppDomainProtocolHandler.cs
- PackagePart.cs
- UIElementAutomationPeer.cs
- JsonUriDataContract.cs
- DataTableTypeConverter.cs
- XmlAttributes.cs
- StylusLogic.cs
- ValueHandle.cs
- ConfigXmlWhitespace.cs
- PathFigureCollection.cs
- MenuItem.cs
- InstallerTypeAttribute.cs
- DataGridParentRows.cs
- CommentEmitter.cs
- MenuRenderer.cs
- ObjectListItemCollection.cs
- DbDataRecord.cs
- InfoCardRSAOAEPKeyExchangeFormatter.cs
- SyndicationItem.cs
- BaseDataList.cs
- DataControlField.cs
- WebResourceUtil.cs
- WebServicesInteroperability.cs
- SchemaObjectWriter.cs
- safex509handles.cs
- PanelStyle.cs
- ProcessModelSection.cs
- BinaryFormatterWriter.cs
- RpcCryptoRequest.cs
- StringValueSerializer.cs
- GeneralTransform2DTo3DTo2D.cs
- TemplatePropertyEntry.cs
- ListViewContainer.cs
- ElementFactory.cs
- AccessDataSourceView.cs
- ClientBuildManagerCallback.cs
- ListBindableAttribute.cs
- RectAnimation.cs
- DriveInfo.cs
- ListViewUpdateEventArgs.cs
- DesignerAdapterAttribute.cs
- HttpCookieCollection.cs
- ArithmeticException.cs