Code:
/ FX-1434 / FX-1434 / 1.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
- KnownBoxes.cs
- DataGridParentRows.cs
- COM2ColorConverter.cs
- AutomationEvent.cs
- XmlIterators.cs
- ConfigurationManagerHelper.cs
- AssertSection.cs
- HorizontalAlignConverter.cs
- DataGridTextBoxColumn.cs
- SortFieldComparer.cs
- ComUdtElement.cs
- GeneralTransform3DTo2DTo3D.cs
- HistoryEventArgs.cs
- returneventsaver.cs
- ToolBarOverflowPanel.cs
- _NetRes.cs
- SingleTagSectionHandler.cs
- ConcurrencyBehavior.cs
- TextSerializer.cs
- MetabaseSettings.cs
- __ComObject.cs
- JavascriptCallbackMessageInspector.cs
- SafePipeHandle.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- LinqDataSourceSelectEventArgs.cs
- CoreSwitches.cs
- TextReturnReader.cs
- XamlPointCollectionSerializer.cs
- InstanceCollisionException.cs
- DesignerTransactionCloseEvent.cs
- Rijndael.cs
- MissingMemberException.cs
- TemplatedMailWebEventProvider.cs
- TypeUsage.cs
- Mappings.cs
- DataPagerFieldItem.cs
- PropertyTabChangedEvent.cs
- ISFTagAndGuidCache.cs
- TextDecorationCollectionConverter.cs
- SqlRetyper.cs
- SqlDependencyListener.cs
- BooleanProjectedSlot.cs
- XmlException.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- HttpProfileGroupBase.cs
- LinkedResourceCollection.cs
- XmlConvert.cs
- MemoryRecordBuffer.cs
- WaitHandleCannotBeOpenedException.cs
- WindowsAuthenticationModule.cs
- XamlDesignerSerializationManager.cs
- SubMenuStyleCollectionEditor.cs
- SystemShuttingDownException.cs
- BitmapEffectDrawing.cs
- TreeNodeBindingCollection.cs
- EmptyStringExpandableObjectConverter.cs
- PeerCollaboration.cs
- ProxySimple.cs
- ProcessManager.cs
- OperationGenerator.cs
- ToolStripManager.cs
- FederatedMessageSecurityOverHttp.cs
- ProtocolImporter.cs
- CommonObjectSecurity.cs
- ToolStripContentPanelRenderEventArgs.cs
- BookmarkEventArgs.cs
- XmlElement.cs
- SurrogateChar.cs
- ScriptingScriptResourceHandlerSection.cs
- NonVisualControlAttribute.cs
- OleCmdHelper.cs
- IntAverageAggregationOperator.cs
- BypassElementCollection.cs
- StatusBarPanel.cs
- ToolStripScrollButton.cs
- DPCustomTypeDescriptor.cs
- DrawItemEvent.cs
- DataGridAutomationPeer.cs
- QuaternionAnimation.cs
- Message.cs
- XPathAxisIterator.cs
- DirectionalLight.cs
- VirtualDirectoryMappingCollection.cs
- CombinedGeometry.cs
- And.cs
- FormViewPageEventArgs.cs
- TransformPattern.cs
- HttpProfileGroupBase.cs
- PropertyEmitter.cs
- ByteAnimationBase.cs
- XmlSchemaDatatype.cs
- DocumentViewerHelper.cs
- DataControlField.cs
- UpdateProgress.cs
- WindowsFormsHostPropertyMap.cs
- HtmlFormWrapper.cs
- AsyncResult.cs
- IdentityModelDictionary.cs
- StrokeRenderer.cs
- SessionStateSection.cs