Code:
/ DotNET / DotNET / 8.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
- ClientUtils.cs
- AssemblyCollection.cs
- PrefixHandle.cs
- GridViewPageEventArgs.cs
- CacheHelper.cs
- DelimitedListTraceListener.cs
- MergeFilterQuery.cs
- ValidationManager.cs
- OleDbStruct.cs
- MimeXmlImporter.cs
- TextBox.cs
- XmlReaderSettings.cs
- WindowsAuthenticationEventArgs.cs
- _ListenerResponseStream.cs
- DispatcherSynchronizationContext.cs
- BinaryObjectWriter.cs
- externdll.cs
- TypeInfo.cs
- TemplateBindingExpression.cs
- RequestTimeoutManager.cs
- InkCanvasInnerCanvas.cs
- ToolStripDropTargetManager.cs
- SpotLight.cs
- SafeFileMappingHandle.cs
- ExpressionTextBoxAutomationPeer.cs
- XamlHostingSectionGroup.cs
- Win32.cs
- SerializableAttribute.cs
- MessageLogTraceRecord.cs
- AuthenticationService.cs
- Configuration.cs
- AnimationStorage.cs
- Delegate.cs
- CheckBoxList.cs
- CodeDOMProvider.cs
- DataShape.cs
- CorrelationInitializer.cs
- IHttpResponseInternal.cs
- ReadingWritingEntityEventArgs.cs
- PermissionSet.cs
- DoubleAnimationBase.cs
- LinqDataSourceInsertEventArgs.cs
- TableDetailsCollection.cs
- QilScopedVisitor.cs
- CircleEase.cs
- IndexedDataBuffer.cs
- HttpCookieCollection.cs
- AccessKeyManager.cs
- ConfigurationException.cs
- LinqDataSourceInsertEventArgs.cs
- PackUriHelper.cs
- ExtractedStateEntry.cs
- XmlEntityReference.cs
- PlanCompilerUtil.cs
- NamespaceQuery.cs
- TextSimpleMarkerProperties.cs
- MaterialGroup.cs
- AsymmetricKeyExchangeDeformatter.cs
- LoginNameDesigner.cs
- FtpWebRequest.cs
- LogReservationCollection.cs
- SmtpReplyReader.cs
- CompensationExtension.cs
- MDIWindowDialog.cs
- TranslateTransform.cs
- SimpleRecyclingCache.cs
- NumericUpDownAccelerationCollection.cs
- Table.cs
- ResXDataNode.cs
- CollectionDataContractAttribute.cs
- SpellerHighlightLayer.cs
- FileRecordSequence.cs
- CodeDOMUtility.cs
- FileDetails.cs
- HtmlTableCell.cs
- InputReferenceExpression.cs
- _SslStream.cs
- ScrollItemPattern.cs
- Bidi.cs
- ServiceModelConfigurationSection.cs
- EDesignUtil.cs
- FrameworkEventSource.cs
- TextTreePropertyUndoUnit.cs
- SystemColorTracker.cs
- CheckBoxField.cs
- PointLight.cs
- precedingsibling.cs
- HuffmanTree.cs
- CapiSafeHandles.cs
- EmptyCollection.cs
- CriticalExceptions.cs
- QueryParameter.cs
- XsltSettings.cs
- TextEditorSpelling.cs
- AttributeUsageAttribute.cs
- Pkcs7Signer.cs
- MILUtilities.cs
- ProviderCommandInfoUtils.cs
- TableLayoutPanelCellPosition.cs
- Matrix.cs