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
- WebServiceClientProxyGenerator.cs
- DesignerAttributeInfo.cs
- SmiSettersStream.cs
- FrameworkReadOnlyPropertyMetadata.cs
- EditorZone.cs
- Int32Collection.cs
- StreamInfo.cs
- DependencyObjectProvider.cs
- OpacityConverter.cs
- _SslStream.cs
- SerializeAbsoluteContext.cs
- MemberDomainMap.cs
- EncryptedHeaderXml.cs
- ResourceSet.cs
- TouchFrameEventArgs.cs
- DbProviderServices.cs
- SecurityKeyType.cs
- TimeSpanOrInfiniteConverter.cs
- MapPathBasedVirtualPathProvider.cs
- FindCriteriaElement.cs
- GatewayDefinition.cs
- Int64Converter.cs
- CreateParams.cs
- TextEndOfSegment.cs
- KeyedHashAlgorithm.cs
- ImageFormat.cs
- Hyperlink.cs
- HostVisual.cs
- DataControlFieldCell.cs
- UniqueContractNameValidationBehavior.cs
- LoginCancelEventArgs.cs
- CqlParser.cs
- TransportReplyChannelAcceptor.cs
- ActiveDocumentEvent.cs
- ListDictionary.cs
- SwitchLevelAttribute.cs
- TraceSource.cs
- Process.cs
- TokenBasedSetEnumerator.cs
- Byte.cs
- WmlLiteralTextAdapter.cs
- OrCondition.cs
- MonikerBuilder.cs
- ValuePattern.cs
- TextSchema.cs
- DynamicILGenerator.cs
- MetabaseSettings.cs
- XmlWrappingReader.cs
- CompoundFileReference.cs
- CompilerLocalReference.cs
- Bitmap.cs
- CacheDict.cs
- ComboBoxItem.cs
- HttpWebRequestElement.cs
- ModuleConfigurationInfo.cs
- ContractComponent.cs
- SplitterDesigner.cs
- ServicePointManagerElement.cs
- SystemWebExtensionsSectionGroup.cs
- AssemblyAttributesGoHere.cs
- XmlQueryCardinality.cs
- WasAdminWrapper.cs
- MdbDataFileEditor.cs
- ResourceContainerWrapper.cs
- ServiceHttpHandlerFactory.cs
- BitmapSourceSafeMILHandle.cs
- StateWorkerRequest.cs
- BooleanSwitch.cs
- XPathNodeInfoAtom.cs
- ObjectItemAttributeAssemblyLoader.cs
- figurelengthconverter.cs
- EntityDataSourceWrapperPropertyDescriptor.cs
- TreeViewAutomationPeer.cs
- RecognizedAudio.cs
- localization.cs
- DataGridHyperlinkColumn.cs
- MulticastNotSupportedException.cs
- SafeNativeMethodsOther.cs
- MouseBinding.cs
- IPGlobalProperties.cs
- SortedList.cs
- SystemIPGlobalProperties.cs
- ScriptingSectionGroup.cs
- CodeConditionStatement.cs
- SqlUDTStorage.cs
- UserInitiatedNavigationPermission.cs
- XmlTypeMapping.cs
- LinkUtilities.cs
- filewebresponse.cs
- SponsorHelper.cs
- SqlGatherProducedAliases.cs
- DateTimeUtil.cs
- DeclarationUpdate.cs
- InternalMappingException.cs
- CodeNamespace.cs
- EventWaitHandleSecurity.cs
- XmlDictionaryString.cs
- ValueTable.cs
- ExpandSegment.cs
- SqlAliasesReferenced.cs