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
- UserControlDocumentDesigner.cs
- ReferencedCategoriesDocument.cs
- ConfigXmlSignificantWhitespace.cs
- XmlSchemaObject.cs
- GotoExpression.cs
- WinFormsSecurity.cs
- SatelliteContractVersionAttribute.cs
- DataList.cs
- StorageComplexPropertyMapping.cs
- RSAProtectedConfigurationProvider.cs
- System.Data.OracleClient_BID.cs
- CqlParser.cs
- BuildDependencySet.cs
- SimpleHandlerBuildProvider.cs
- TabControlCancelEvent.cs
- RequestSecurityToken.cs
- SystemDiagnosticsSection.cs
- RoutedCommand.cs
- StreamInfo.cs
- ScriptResourceAttribute.cs
- OrderPreservingPipeliningSpoolingTask.cs
- BinaryObjectWriter.cs
- XmlDictionaryReaderQuotasElement.cs
- SQLInt16.cs
- SudsParser.cs
- XmlUtil.cs
- UnsafeNativeMethods.cs
- PngBitmapDecoder.cs
- LinkedResourceCollection.cs
- Accessors.cs
- Accessible.cs
- DynamicILGenerator.cs
- WebEventTraceProvider.cs
- DropTarget.cs
- BamlRecordReader.cs
- DataGridViewBand.cs
- DeviceSpecific.cs
- MenuTracker.cs
- PagesSection.cs
- IriParsingElement.cs
- ApplicationInfo.cs
- DBDataPermission.cs
- MsdtcWrapper.cs
- SqlProvider.cs
- WebDescriptionAttribute.cs
- HitTestFilterBehavior.cs
- WebConfigurationManager.cs
- HandlerBase.cs
- ConnectionOrientedTransportBindingElement.cs
- EventLog.cs
- XmlDataCollection.cs
- RawTextInputReport.cs
- DeploymentSection.cs
- ExpressionPrinter.cs
- TextParagraph.cs
- SupportingTokenSpecification.cs
- Operator.cs
- DataBoundControlAdapter.cs
- ParagraphResult.cs
- XsdBuilder.cs
- XmlNamespaceDeclarationsAttribute.cs
- LinqMaximalSubtreeNominator.cs
- followingsibling.cs
- X509ThumbprintKeyIdentifierClause.cs
- WebCategoryAttribute.cs
- HttpApplicationFactory.cs
- Visual3D.cs
- QilReplaceVisitor.cs
- InvalidOleVariantTypeException.cs
- AccessibilityHelperForXpWin2k3.cs
- _AuthenticationState.cs
- SafeEventLogReadHandle.cs
- CollectionViewGroupInternal.cs
- XmlSchemaParticle.cs
- RedistVersionInfo.cs
- TransformerTypeCollection.cs
- XmlWhitespace.cs
- QilParameter.cs
- BindingGroup.cs
- WebPartDeleteVerb.cs
- WebPartAuthorizationEventArgs.cs
- ManagedIStream.cs
- EventMap.cs
- SHA512Managed.cs
- Screen.cs
- DockPanel.cs
- ResourcesBuildProvider.cs
- ScalarConstant.cs
- SmiEventSink_DeferedProcessing.cs
- MultipleViewProviderWrapper.cs
- Dynamic.cs
- MessageQueuePermissionEntry.cs
- ToolTip.cs
- PrivilegedConfigurationManager.cs
- BitmapEffectGeneralTransform.cs
- BuildProvidersCompiler.cs
- DataViewSetting.cs
- GroupQuery.cs
- ImageDrawing.cs
- NumericUpDownAccelerationCollection.cs