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
- ComboBoxItem.cs
- Point3DAnimationBase.cs
- BinaryWriter.cs
- DataServiceClientException.cs
- bidPrivateBase.cs
- ValidatorCompatibilityHelper.cs
- BufferBuilder.cs
- PackagePartCollection.cs
- KnownTypesProvider.cs
- SoapWriter.cs
- WebFormsRootDesigner.cs
- ApplicationContext.cs
- WebSysDefaultValueAttribute.cs
- _AutoWebProxyScriptWrapper.cs
- InputLangChangeRequestEvent.cs
- DirectionalLight.cs
- FileSystemInfo.cs
- ListViewItem.cs
- SequentialOutput.cs
- Drawing.cs
- UserControl.cs
- UrlPath.cs
- PopOutPanel.cs
- Helpers.cs
- QuaternionRotation3D.cs
- SortQuery.cs
- BitmapInitialize.cs
- WebHeaderCollection.cs
- StylusDevice.cs
- ServicePointManagerElement.cs
- CheckBoxRenderer.cs
- AxHostDesigner.cs
- XMLUtil.cs
- RangeBase.cs
- MobileControlDesigner.cs
- EditingCoordinator.cs
- SR.cs
- FindSimilarActivitiesVerb.cs
- AccessControlList.cs
- base64Transforms.cs
- UiaCoreApi.cs
- TransactionChannel.cs
- TerminatorSinks.cs
- Helpers.cs
- Latin1Encoding.cs
- ThousandthOfEmRealDoubles.cs
- Int32.cs
- BooleanKeyFrameCollection.cs
- TCPListener.cs
- CompilerLocalReference.cs
- ModuleConfigurationInfo.cs
- SafeRightsManagementEnvironmentHandle.cs
- CookielessHelper.cs
- ArglessEventHandlerProxy.cs
- ExpressionBuilder.cs
- Expander.cs
- CopyCodeAction.cs
- ToolboxItemCollection.cs
- HTTPAPI_VERSION.cs
- SelectionRange.cs
- SimpleApplicationHost.cs
- DataPagerFieldItem.cs
- iisPickupDirectory.cs
- URLString.cs
- AsyncOperation.cs
- DynamicUpdateCommand.cs
- ClockController.cs
- DbConnectionPoolGroup.cs
- PropertyMappingExceptionEventArgs.cs
- DigestComparer.cs
- ConfigXmlComment.cs
- TranslateTransform.cs
- MergablePropertyAttribute.cs
- MarkerProperties.cs
- ConfigurationPropertyCollection.cs
- DashStyle.cs
- NumericUpDownAcceleration.cs
- XmlSignatureProperties.cs
- WebPartsSection.cs
- SqlDataRecord.cs
- CryptoProvider.cs
- updatecommandorderer.cs
- DefaultTraceListener.cs
- CategoryAttribute.cs
- WindowsSpinner.cs
- CorrelationResolver.cs
- HwndAppCommandInputProvider.cs
- EventWaitHandle.cs
- CalendarDay.cs
- GridViewCancelEditEventArgs.cs
- WsatAdminException.cs
- GeneralTransform2DTo3D.cs
- VectorAnimationUsingKeyFrames.cs
- AuthenticationServiceManager.cs
- ParserContext.cs
- ManifestResourceInfo.cs
- KeySpline.cs
- WebPartConnection.cs
- NameValueSectionHandler.cs
- Bits.cs