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
- QueryPageSettingsEventArgs.cs
- CssClassPropertyAttribute.cs
- ADMembershipProvider.cs
- FileNameEditor.cs
- ConfigXmlAttribute.cs
- XmlStreamedByteStreamReader.cs
- FileAuthorizationModule.cs
- AnonymousIdentificationSection.cs
- ToolStripCollectionEditor.cs
- _ContextAwareResult.cs
- DataGridViewComponentPropertyGridSite.cs
- KeyboardEventArgs.cs
- HtmlShim.cs
- cookiecontainer.cs
- Translator.cs
- SiteMapNodeItemEventArgs.cs
- Underline.cs
- Span.cs
- BooleanFacetDescriptionElement.cs
- XMLSyntaxException.cs
- Parameter.cs
- ReferenceConverter.cs
- IndividualDeviceConfig.cs
- FormViewUpdateEventArgs.cs
- SignatureHelper.cs
- HttpHandlerAction.cs
- DetailsViewModeEventArgs.cs
- ObjectQuery.cs
- _DomainName.cs
- CurrencyManager.cs
- ResourceContainer.cs
- ImportFileRequest.cs
- Codec.cs
- Byte.cs
- DiagnosticSection.cs
- DrawingVisual.cs
- XmlC14NWriter.cs
- ThemeDictionaryExtension.cs
- HttpProfileGroupBase.cs
- BamlLocalizer.cs
- mongolianshape.cs
- GuidTagList.cs
- EntityCommandDefinition.cs
- SecurityDocument.cs
- FlowDocumentPaginator.cs
- IconBitmapDecoder.cs
- thaishape.cs
- panel.cs
- TransformerInfo.cs
- DesignConnectionCollection.cs
- DecimalConstantAttribute.cs
- DependencyPropertyHelper.cs
- _ScatterGatherBuffers.cs
- TextViewBase.cs
- AssemblyUtil.cs
- ToolBarPanel.cs
- LassoSelectionBehavior.cs
- GridViewDeleteEventArgs.cs
- Zone.cs
- Guid.cs
- Events.cs
- ResourceDisplayNameAttribute.cs
- XmlException.cs
- AssemblyInfo.cs
- CustomValidator.cs
- TableAdapterManagerNameHandler.cs
- PropertyChangedEventArgs.cs
- DetailsViewCommandEventArgs.cs
- AspNetHostingPermission.cs
- XmlSchemaDatatype.cs
- TraceEventCache.cs
- SiteMapPath.cs
- Exceptions.cs
- AsyncSerializedWorker.cs
- ObjectDataSourceDisposingEventArgs.cs
- NameScopePropertyAttribute.cs
- TextDecorationLocationValidation.cs
- ColorDialog.cs
- EmptyEnumerable.cs
- ToolStripTextBox.cs
- OracleSqlParser.cs
- PriorityQueue.cs
- TextDecorationCollectionConverter.cs
- EntityDataSourceQueryBuilder.cs
- Util.cs
- RouteParser.cs
- WorkflowServiceHost.cs
- ControlEvent.cs
- CodeExpressionCollection.cs
- StylusPointPropertyInfoDefaults.cs
- AnnotationHighlightLayer.cs
- ValidationErrorCollection.cs
- Switch.cs
- ResourceSet.cs
- ContentTypeSettingClientMessageFormatter.cs
- DictionaryContent.cs
- SocketSettings.cs
- IncrementalReadDecoders.cs
- ViewEvent.cs
- XmlSchemaSimpleType.cs