Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / Xml / System / Xml / Core / SecureStringHasher.cs / 2 / 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
- NameNode.cs
- BooleanAnimationUsingKeyFrames.cs
- WindowsRebar.cs
- SecurityElement.cs
- SyndicationSerializer.cs
- IsolatedStorageFilePermission.cs
- _BasicClient.cs
- X509InitiatorCertificateServiceElement.cs
- Icon.cs
- DashStyles.cs
- DeviceSpecificDialogCachedState.cs
- Tuple.cs
- CaseInsensitiveOrdinalStringComparer.cs
- ArraySegment.cs
- OdbcParameterCollection.cs
- UnicodeEncoding.cs
- WebPartActionVerb.cs
- wgx_commands.cs
- GridViewSortEventArgs.cs
- CodeAccessSecurityEngine.cs
- ListQueryResults.cs
- AssociationType.cs
- control.ime.cs
- Permission.cs
- SplitterPanel.cs
- ProfileGroupSettingsCollection.cs
- MediaScriptCommandRoutedEventArgs.cs
- figurelength.cs
- HtmlInputCheckBox.cs
- Permission.cs
- ExtendedPropertyCollection.cs
- XPathDocument.cs
- SupportingTokenListenerFactory.cs
- JsonSerializer.cs
- IconConverter.cs
- NameTable.cs
- DateTimePicker.cs
- __Error.cs
- DataGridColumnCollection.cs
- SafeBitVector32.cs
- TemplatedMailWebEventProvider.cs
- FolderBrowserDialog.cs
- RefreshPropertiesAttribute.cs
- ContextMenu.cs
- ISO2022Encoding.cs
- WindowClosedEventArgs.cs
- ClientBuildManagerTypeDescriptionProviderBridge.cs
- StylusButton.cs
- RegistrationServices.cs
- WebColorConverter.cs
- PeerResolverBindingElement.cs
- Image.cs
- Activator.cs
- Span.cs
- SHA384Managed.cs
- XmlNode.cs
- DesignerEventService.cs
- ValidationEventArgs.cs
- ObjectDataSourceMethodEventArgs.cs
- ConnectionsZone.cs
- Permission.cs
- ConfigPathUtility.cs
- HelpHtmlBuilder.cs
- LocalBuilder.cs
- SetUserLanguageRequest.cs
- InstanceDataCollectionCollection.cs
- XPathException.cs
- CodeVariableDeclarationStatement.cs
- InputScopeNameConverter.cs
- ParameterCollection.cs
- OSFeature.cs
- PeerObject.cs
- RuleSetReference.cs
- SwitchCase.cs
- IIS7UserPrincipal.cs
- Transform3D.cs
- WCFServiceClientProxyGenerator.cs
- AudioFileOut.cs
- ExtentCqlBlock.cs
- Stroke2.cs
- SettingsAttributeDictionary.cs
- RsaElement.cs
- SqlVisitor.cs
- DummyDataSource.cs
- CompilerCollection.cs
- ThreadStateException.cs
- ColumnReorderedEventArgs.cs
- AdjustableArrowCap.cs
- PrintPageEvent.cs
- OleDbEnumerator.cs
- ValidatedControlConverter.cs
- FloaterParagraph.cs
- ListControlConvertEventArgs.cs
- AssemblyNameUtility.cs
- cache.cs
- AttachInfo.cs
- RC2.cs
- ParameterCollection.cs
- Quaternion.cs
- Stack.cs