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
- FolderLevelBuildProviderCollection.cs
- AliasGenerator.cs
- AddressAlreadyInUseException.cs
- ConsumerConnectionPointCollection.cs
- SQLMoneyStorage.cs
- ReceiveDesigner.xaml.cs
- TextWriterEngine.cs
- ConstNode.cs
- IndentTextWriter.cs
- DataBoundLiteralControl.cs
- ArrangedElementCollection.cs
- PropertyMetadata.cs
- AbsoluteQuery.cs
- WebHostUnsafeNativeMethods.cs
- SafeNativeMethodsMilCoreApi.cs
- FrameworkElement.cs
- LookupBindingPropertiesAttribute.cs
- CodeMethodReturnStatement.cs
- SignatureDescription.cs
- ViewStateException.cs
- SessionStateSection.cs
- SurrogateChar.cs
- DataPagerFieldCommandEventArgs.cs
- CompositeFontParser.cs
- KeySpline.cs
- IntSecurity.cs
- DebugView.cs
- DataGridViewElement.cs
- PerformanceCounterNameAttribute.cs
- PackagingUtilities.cs
- XmlCompatibilityReader.cs
- PageParserFilter.cs
- StringHandle.cs
- OleDbCommand.cs
- _OSSOCK.cs
- Assembly.cs
- EventsTab.cs
- HScrollBar.cs
- LockedActivityGlyph.cs
- GridViewUpdatedEventArgs.cs
- XmlNodeChangedEventManager.cs
- DirectionalLight.cs
- InstanceOwnerQueryResult.cs
- ListViewAutomationPeer.cs
- Flowchart.cs
- PairComparer.cs
- FixUpCollection.cs
- WebEventTraceProvider.cs
- DataSourceHelper.cs
- TextEditorLists.cs
- SEHException.cs
- ListViewItem.cs
- StyleXamlTreeBuilder.cs
- Baml2006KeyRecord.cs
- KeyedHashAlgorithm.cs
- ToolBarTray.cs
- ProfileBuildProvider.cs
- DirectionalLight.cs
- DefaultPrintController.cs
- MemoryMappedFile.cs
- BuildDependencySet.cs
- TimelineClockCollection.cs
- FrameworkElementAutomationPeer.cs
- ServiceMetadataPublishingElement.cs
- MissingManifestResourceException.cs
- SettingsPropertyNotFoundException.cs
- MethodBuilder.cs
- XmlSerializer.cs
- _Events.cs
- MimeFormImporter.cs
- EnvironmentPermission.cs
- SharedPersonalizationStateInfo.cs
- MessageBodyDescription.cs
- XamlStream.cs
- mongolianshape.cs
- ProviderSettings.cs
- PasswordBoxAutomationPeer.cs
- ToolStripRenderer.cs
- XPathExpr.cs
- WorkflowInstanceTerminatedRecord.cs
- ResourceManagerWrapper.cs
- ExclusiveHandleList.cs
- WsdlInspector.cs
- FlowDocumentScrollViewer.cs
- WindowsFormsHostPropertyMap.cs
- ColumnBinding.cs
- GridViewSortEventArgs.cs
- WsatTransactionFormatter.cs
- CompositeScriptReferenceEventArgs.cs
- EntityTransaction.cs
- AttributeProviderAttribute.cs
- XmlSchemaSimpleTypeRestriction.cs
- ActivationProxy.cs
- PbrsForward.cs
- SecurityDescriptor.cs
- ObjectParameter.cs
- CellParagraph.cs
- NetTcpBindingCollectionElement.cs
- Query.cs
- StackBuilderSink.cs